{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Iterative Phase Estimation\n",
    "\n",
    "This tutorial shows the IPE algorithm applied to a simple problem, estimating the eigenvalue of the |11> state for the CT gate, i.e. diag(1, 1, 1, e^ipi/4). This means PHI=pi/4 and phi=1/8=0.001 in bynary, so it can be represented exactly with m=3 classical bits. For an accurate description of the algorithm see https://github.com/qiskit-community/qiskit-community-tutorials/blob/master/algorithms/iterative_phase_estimation_algorithm.ipynb"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "from math import pi\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister\n",
    "from qiskit.circuit.classical import expr\n",
    "from qiskit.visualization import plot_histogram\n",
    "from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager\n",
    "\n",
    "from qiskit_ibm_runtime import SamplerV2 as Sampler\n",
    "from qiskit_ibm_runtime.fake_provider import FakeBrisbane\n",
    "from qiskit_ibm_runtime import QiskitRuntimeService"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Step 1: Map problem to quantum circuits and operators"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<qiskit.circuit.instructionset.InstructionSet at 0x7f9dee4cb9d0>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "nq = 3    # number of qubits\n",
    "m = 3    # number of classical bits\n",
    "\n",
    "PHI = pi/4\n",
    "\n",
    "q = QuantumRegister(nq,'q')\n",
    "c = ClassicalRegister(m,'c')\n",
    "\n",
    "qc = QuantumCircuit(q,c)\n",
    "\n",
    "qc.h(0)\n",
    "qc.x([1, 2])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def x_measurement(qc, qubit, cbit):\n",
    "    \"\"\"Measure 'qubit' in the X-basis, and store the result in 'cbit'\"\"\"\n",
    "    qc.h(qubit)\n",
    "    qc.measure(qubit, cbit)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1040x367.889 with 1 Axes>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# step 1\n",
    "\n",
    "for _ in range(2 ** (m - 1)):\n",
    "    qc.mcp(PHI, [0, 1], 2)\n",
    "\n",
    "x_measurement(qc, q[0], c[0])\n",
    "qc.draw('mpl')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABbgAAAEvCAYAAACHcKfKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAABTPElEQVR4nO3dd3hUVf7H8c+d9AahBAIECJEiPUpvIgoqTVBUXFHRtawV2XVF17Lu6ip2/VlXV9C1sayorAooKiBIbwEEFMEESEiQSEJIL3N/f4yJxATIDNPuzPv1PHlgbpn5JnOSOfOZc88xTNM0BQAAAAAAAACAxdh8XQAAAAAAAAAAAK4g4AYAAAAAAAAAWBIBNwAAAAAAAADAkgi4AQAAAAAAAACWRMANAAAAAAAAALAkAm4AAAAAAAAAgCURcAMAAAAAAAAALImAGwAAAAAAAABgSQTcAAAAAAAAAABLIuAGAAAAAAAAAFgSATcAAAAAAAAAwJIIuAEAAAAAAAAAlkTADQAAAAAAAACwJAJuAAAAAAAAAIAlEXADAAAAAAAAACyJgBsAAAAAAAAAYEkE3AAAAAAAAAAASyLgBgAAAAAAAABYEgE3AAAAAAAAAMCSCLgBAAAAAAAAAJZEwA0AAAAAAAAAsCQCbgAAAAAAAACAJRFwAwAAAAAAAAAsiYAbAAAAAAAAAGBJBNwAAAAAAAAAAEsi4AYAAAAAAAAAWBIBNwAAAAAAAADAkgi4AQAAAAAAAACWRMANAAAAAAAAALAkAm4AAAAAAAAAgCWF+roAAAAAAABOxiwokPKPyCwp9XUpaCAjKkpqEi8jLtbXpQAAAhgBNwAAAADAL5mHcmX/ZrXMlWtk7trt63LgCsOQ0bWLjKEDZRs8UEbTJr6uCAAQYAzTNE1fFwEAAAAAwLHsm9JU9chTUkWFr0uBu0RFKuTBv8jW7XRfVwIACCDMwQ0AAAAA8CuE2wGqpFRVf58p+47vfF0JACCAMIIbAAAAAOA3zLx8VV5/2/HD7fBwyWZ4tyg4z25K5eX174uKUugbr8iIjvJuTQCAgMQc3AAAAAAAv2FftbZOuG30PUO2sRfI6NVdRliYjyqDs8yycplbtsn+vwUyt23/dUdJicz1m2QMH+K74gAAAYMpSgAAAAAAfsP8ZnWt28YZvRVy3wzZ+qQSbluMEREuW/8+CvnbvTK6dKq1z75y9XHOAgDAOYzg9lOmaUplZb4uo+EiImQYXCYIAADcw3J9Icmt/SHTNFVVVeWW+/KWkJAQt/YHg/1nEKy/A2ZJqczfzM9sGz1KRkjwjc0yTanUWr8CigyR6msCRliobOedq6rvf6jZZm5Kk2mavI8EcFzB+lpYLdj7Qs4g4PZXZWWqvGyqr6tosND//luKjPR1GQAAIFBYrC8kubc/VFVVpQ8++MAt9+UtkyZNUmio+95eBP3PIFh/BwoKHMnuMYwe3U7tPi2qtEoattDXVThnxRgp6ji/AkbP3zyP5RVSSYkUHe35wgBYU7C+Fv4i6PtCTgi+j8EBAAAAAP6pvpF6Me4JQJcuXaqBAwcqLi5OhmHozTffdMv9ooHqC7JLSr1fBwAg4DCCGwAAAADgt5y91Pnss8/Whg0bVFhYWLMtLy9PF198sZKSkvT0008rOjpagwcPdnepOBEbU5EAADyDgBsAAAAAENDWr1+v/Px8zZo1SxdffLGvywEAAG7EFCUAAAAAgICWk5MjSWratKmPKwEAAO7GCG4AAAAAQMBKTk7W3r17JUkjRoyo2W7+ZjFLAABgTQTcAAAAAICA9dxzz2nRokV67bXXdO+996pr166+LgkAALgRATcAAAAAIGBNnDhR+fn5eu211zRq1CidffbZvi4JAAC4EQE3AAAAAAAB7Oi2Zdp1/4ha22yRMYps00VNR1ytFmNukxES4pviAAA4RQTcAAAAAAAEgSZn/U6N+4yRTFMVhw/o5yVvKvP16Srdt13tb33N1+UBAOASAm4AAAAAAIJAdMqZanb2lTW3E0bfrO23dlXuF6+r9ZSHFRbf0ofVAQDgGpuvCwAAAADg/+x2u0zT9HUZANwoJLqRYroMkkxTZTk/+rocAICfs9vtvi6hXozgBgAAAAJYSUmJMjIylJ6erqKiIlVVVSksLEwJCQlKSUlR69atZbOdeNyL3W7XSy+9pEaNGunqq6+WYRheqh6AJ5mmqbKc3ZKk0EbNfVwNAMBTCgoK9OOPP2r//v0qLi6WJIWHh6t169bq0KGDEhISTtq/Kyoq0syZMzVy5Ei/W7CZgBsAAAAIMKWlpVq5cqW++uorpaenn3DkdUREhPr06aPzzjtPXbp0qfPmpjrcXrlypSQpNDRUU6ZM8Wj9ADzDXlasyoJcmaapirxsHfr0BZWkb1FMl4GKbN3J1+UBANwoPz9fS5cu1bJly3Tw4METHhsXF6chQ4Zo1KhRatOmTZ39RUVFevTRR7Vnzx7t2bNHoaGhGjp0qKdKd1pQBNy5ubl64okn9OGHHyozM1MJCQm6+OKL9eijj2ratGmaPXu2XnjhBd12222+LhUBzDSlokrJlBQTKtkY+BR0qkypsEIKtUnRIRKD34JPhd3xdyAyxPGF4GKaUlmVVGqXYkMdfwsAd6usrNT8+fO1YMEClZSUNOicsrIyrVq1SqtWrVK7du00depUde/eXVLdcDskJERdunTxWP2+9MUXX2j27Nl6+eWX1aRJE1+XA3hE9pwHlT3nwV832Gxq3P9CFpj0otIqxxd9geBkmlJxlVRll2LCpBDeE8IDCgsL9e6772r58uWqqqpq0DlHjx7VZ599ps8++0w9e/bUtddeq9atW0uqHW5LjjC8ffv2HqvfFQEfcKelpWn06NHKyclRTEyMunXrpgMHDuj555/Xnj17dPjwYUlSamqqbwv1kK9zf9Ko1cv0WLde+tNpp9d7TPgn/9WYFq00f8AwL1cXHDKLpA8ypI/3SUcqHNsiQ6TRSdIlyVKXxr6sDp5mmtLWPGleuvRltiPglKTmEdJF7R1fLaJ8WyM8q9IufZ0jzcuQ1uf+ur1TI8ffgNFJUnTAvxoHt8IK6dP9jteC9MJftw9KkC7pIA1tyZsbTwqmvlB6erpeeeUV7du3r9b2du3aqVOnTkpJSVHz5s1ls9lUVlamzMxM/fjjj9q5c6eOHj0qSdq3b58efvhhnXfeebr88ss1a9asWuH2H//4R/Xt29fr31tDLVu2TF9//bUefPDXAM9ut2vRokX66quvdOjQIcXFxWnQoEG69NJLFRkZWXNcnz59NHv2bG3cuFEjR470RfkeEUy/A9WWLVtWZ9s111yja665xuu1+Jvm59+oJoMvlQxDtsgYRbburNC4pr4uK+AVVUqLMh3vCXYf/XV7v+bSpcnSWYmE3YHuYIk0f6/04V7p5zLHtjCbNLK1ow30bMIAKE8KptfCDRs26PXXX1d+fn7NNsMw1LlzZ6WkpKhDhw6Kj4+XYRgqKirS3r17a/qD5eXlkqRt27bp7rvv1uTJkzV8+HA99thjNeF2o0aN9MADD6ht27a++PaOK6DfUufm5mr8+PHKycnRnXfeqQcffFBxcXGSpCeeeEJ33323QkNDZRiGevXq5eNqEWhMU3rjB+mV7xyjto9VWiV9tNfxdVF76e6edGgCUWmV9NdN0pLsuvtyy6R/7ZJm/yDd08vRDhB4soulO9ZKPx6tu++HAmnmVumf30nP9Jd68t4yIK0/JM3YIB2tqLtv9SHHV9fG0rMDpOaRdY8BGmrVqlV66aWXakbphISEaNiwYTrvvPOUkpJS7znVQXV5ebnWrl2rRYsW6ccfHYvMLV68WCtWrKgZBW6FcPt43nrrLX322Wfq16+fxo4dq6ysLH322WfKyMjQfffdVzP/eNOmTZWSkqINGzYEVMANHCuiVSc1SqV9e9OWw9Kd66T88rr71uc6vk6Lk/5vgJQY7f364HkfZkiPb3Nc0XusCrvjg49FmdK5raS/n8lVnnCdaZr673//q48++qhmW3R0tEaOHKmRI0eqRYsW9Z43cOBASY5R38uXL9eiRYt06NAhVVRU6J133tGHH35YM2e3v4bbUoAH3NOmTVNmZqZuu+02PfXUU7X2zZgxQ++99562bNmiDh06qFGjRj6qEoHqte8dAebJfLTXEYQ+dAaf2AaSSrv053XSmkMnPq7KlB7ZItlNaVKyV0qDlxwqlW5YKeWcZIaAvHLp5tXSq4Ol7lwRH1A25krT1v565cbx7Dwi3bhSmj1Uio/wTm0ILN98841eeumlmnm227dvr5tvvlnJyckNOj88PFzDhg3TkCFDtHjxYr333nsqLy8PiHB7//79+vzzz9W/f3/96U9/qtneokULvfnmm1q1alWt+SP79u2rDz/8UKWlpbVGdwOAK77Nk25ZJZWdpC+w56ij3/jGMD7wDjTz0qXHtp38uK+ypZL1joEvDH6Ds0zT1HvvvadPPvmkZtsZZ5yhG264QU2bNmwkVWxsrMaMGaNzzz1Xc+fO1cKFCyWpJtyOi4vz23BbkgL212bnzp2aO3eumjdvrpkzZ9Z7TJ8+fSRJvXv3rrU9PT1dF154oeLi4tSkSRNdffXV+vnnnz1eMwLHtsMNC7erVX9qi8Ax58eTh9vHenyrYzobBI6ZW08eblcrrZLu3Vh3VAesq7xK+suGk4fb1fYVSU9/69maEJh27Nihl19+uSbcPuecc/TII480ONw+ls1m03nnnacePXrU2t60adM6/WWrWLVqlUzT1OjRo2ttP+eccxQREaFvvvmm1va+ffuqoqJCaWlpXqwSQCCqtDv6AicLt6tllzj6jwgc+wulJxoQbldb9ZP0n3TP1YPAtXjx4lrh9tVXX60ZM2Y0ONw+VkREhCZNmqRWrVrV2t6xY0e/DbelAA6458yZI7vdrilTpig2NrbeY6KiHBPfHtthP3r0qEaMGKHMzEzNmTNHr732mlasWKFx48bJbm/gK5MfKq6qUm5ZWb1fcL//Zjh/zjwXzoF/qjKdfz7tcszHhsBwoFhakePcOVnF0qoTL2wNC1mSLR2u51LkE/nigHSYl2WPCcS+UGlpqf75z3/W9FFHjhypG264QaGhrl2kWb2g5KZNm2ptP3TokD744INTrtcX9uzZI8Mw1LFjx1rbw8PD1b59+5r5JKu1bdtWiYmJ2rBhgzfL9IpA/B0A/Nk3Bx2htTNW5Eg5xZ6pB973wV7H+zxnzEt3XN0LzwjE18Ls7Gy9++67Nbevv/56jRkzRoaLUwRULyiZnV17rtXNmzdr7dq1p1SrJwXsFCVLliyRJI0YMeK4x2RmOobMHhtwv/baa8rKytLy5cvVrl07SVJSUpIGDx6sjz/+WBMnTvRc0R700Pfb9dD3231dRlA4Ui59ecD587bmST8ckTqx6KTlrTvkCCud9b990i2nc0laIJi/t+7c+w3xwV5pWKLby4EPuPKBVaXpWJD4mk7urweB2ReaM2eOfvrpJ0lSly5d9Pvf/97lNzPV4faxC0peeeWVeuedd1RVVaWPP/5Y/fr102mnnea2+r0hLy9PjRo1UlhYWJ19TZs21a5du1RZWVnrQ4E+ffpo2bJlqqqqUkhI4EyGGoi/A4A/c6UvYJc0f590U/1r4MFCKuyOfp2zMosd7ycH1j9dMk5RoL0W2u12/fOf/6xZHPL8888/pXVEqsPtYxeUHDt2rObMmSNJmjVrlrp27eqX0zwHbMC9d6/j1aR9+/pXbqusrKzpwB8bcH/66acaOnRoTbgtSYMGDVJKSoo++eQTlwLuvn37KifHuaF8UTabdqQOcvqxjuf6dima1Lr+SwlGr/n6lO+/c+fOKrHwCHd3Cm3fW83vXuDSuaOvvkWlGz92c0XwtuhzblCjSx50+rwj5VJKz76yH3Fy6C/8TvyNrysy9QKnz1u2fa+SJg3xQEXwthZPbJUt1vlLAp98433d/9YfPVCR9VitLyS5tz8UHh5+3Gn2JMdi6osXL6459uabb65ZLNFZ9YXb1XNuFxcX6/3335fdbtf777+ve+6557j307lz55o3WO5wsp9BQ5SVlR13RHt16P3bY/r27asFCxZo586ddaZrORl3/gyC9XegU2SUFnc7s9a2pKSkU7pPqzLCo9TyuR/ccl9xPc9Wn/95flho586dZJbXP2y5UUiItvQeWGtbn7599VOF+/5u+JOEh9copJnzbffF/yzQP17/gwcqgjfZmrRWi0fWuXTu1Xc+qOKls9xckTUF62thtZP1hTZv3qzvv/9ekmN9kd/97ncuP1Z94fYDDzygpKQk/fDDD9qwYYMKCgq0aNEiTZ48+bj3cyp9oVO5ii5gA+6iIsdkttWL4/zW3LlzlZubq7i4OHXo0KFm+44dO3TppZfWOb579+7asWOHS7Xk5OQoKyvLqXOiQ0KkVJcerl4dY2N1bkJL993hbxw4cEDFVVUeu38riWmUrOYunpt3tEiHnWwr8D+JxaVy9fPMgz8fVvlB2oDVRVXa5cr6QHYj1OnXC/inhJC6o0UboqSiijbwC6v1hST39ociIk684uhXX31VM+/2+PHjlZjo2uUfJwq3JWnChAlaunSpcnNztWXLFh08eFAtW9b/czxw4IDK3HiJ78l+Bg29j4KCgnr3VVRU1Ps41R8UuDI9oTt/BsH6O9A4tpHUrfa2YP27aIuIlmefMfc7cOCA7GX1X8pYFBYm/WY6/5zsbGWXlXqhMu9rZguVK9eAlFbag7bNB5IIe5RcHYRdUFSig7QBScH7WljtZH2hL7/8sub/V111lcsLZB8v3K6ec/vaa6/Vpk2bZLfbtWTJEk2aNOm4Awjc3R9sqIANuBMTE5WXl6dNmzZp0KDan/ZkZ2frrrvukiT16tWr1qWceXl5io+Pr3N/TZs2rflUxJVanBXl4ggcX2ndujUjuH8REuXoxpim6fRlwvHhpqLatPFEWfCiqBDXX8xaxEXKDKUNWF14lWuTJxolR9SGvwEBwSzKk6LinD4voqqUNvALq/WFJPf2h8LDw4+7r7KysmY6vpCQEJ177rkuPcbJwm1JCg0N1ciRI/Wf//xHpmnqyy+/1JQpU+q9v9atW7t9BPepatKkiTIzM1VRUVFnmpLDhw8rLi6uzhu0DRs2KDo6Wt26/SZlbQB3/gyC9XegRWRUnW3B+nfRCK/7s/B3rVu3PuEI7t9KbNVKtgAdwa2SfKmJ81lAeFVx0Lb5QGJEu/4hbVxIlUJpA5KC97Ww2on6Qj/99FPNotjNmzdXnz59XHqMk4XbktSsWTP169dPa9eu1ZEjR7Ru3ToNHjy43vs7lb6QqwM2pAAOuEeOHKmdO3fq8ccf16hRo9S5c2dJ0vr163XVVVcpNzdXkpSamurxWlwZXm+WlqrysqkeqMYzdu3aJcPFT4oCjWlKk5dJPx51LtxuFCZ98+lbigzY38rg8XOpNPYLx3y6zhiQIL30g2tXisC/fJ0j3enCFYm3n9tN19+S6f6C4HX/t116e8/Jj/utt++9Rn2fucbt9ViR1fpCknv7Q5WVlcdd2HHv3r06cuSIJOnMM89U06bOT4fTkHC72jnnnKO5c+fKNE1t27btuPe5a9culxe4rM+JfgYNddppp2nr1q3avXu3unbtWrO9vLxce/fu1emn153odsOGDUpNTXXpe3HnzyBYfwfMfftVedufa22rXjsp2JRUSsMW+roK5+za9YOijvMrYBYWqvKK62pt27hhg4xmzv8Ns4JXv5P+tcv5816bPllDZx7/8n9Yx82rpPW5zp0TZpPWvvO0mkY87ZmiLCZYXwurnagvtG3btpqr+c455xyXpqprSLhdbeTIkTWLTG7duvW4Abe7+4MNZb2PQhpoxowZatasmfbv36/u3burZ8+e6tSpk/r376+UlBSdc845kmrPvy05Rnnk5+fXub/Dhw+79OYBwccwpMuSnT9vfFsRbgeIZpHSua2dP+/SZLeXAh8Z2lJKdHLQVYghTax/2QhY0KRk589JiZP6NHN7KQhA6enpNf8/NrRtKGfCbcnxZqd6DuT9+/e7dZS2pw0aNEiGYWjRokW1ti9ZskRlZWUaOnRore1ZWVnKzs4+7s8CABrq4mRH/84ZraOlQSwuGDBceX83spXU9NRn6EIQONX+oDPhtuRY0Lw6RD/2sf1FwAbcSUlJWrFihcaOHavIyEhlZGSoadOmevXVV7VgwQLt2uX4KPW3AXfXrl3rnWt7x44dLjUYBKcxbaUOsQ0/vmm49LvTPFcPvO/aTlK0E5Pu9WriCEURGEIM6Za6gwJP6IoUqTkXwgSMpBjpIic+sDDkaDNOzmyFIHXsm4qUlBSnznU23K5WvWZNVVWV9u3b52TFvtOuXTudd955WrdunZ5++mktWbJEb7/9tt5++2117dpVQ4bUXth3w4YNCg0N9cpVngACW0KkdHmHkx93rJtPdz4Uh/86K1Hq2aThx0eHStd29lw9CCw//vijJMkwjFprCzaEs+G25JguxZ8HPAT0eNGuXbvq008/rbO9sLBQGRkZstlsdVZGHzdunO69915lZmbWPHFr167Vnj179OSTT3qlblhfdKj0/EDHJUmZJ5mKt3GY9NxA50d7wr91bCQ92V/68zqp5CRTcndpLD3TXwoN2I8cg9OYtlJumfR8A2adGZMk3eb8VK/wc3f3lPLLpaXZJz7O+OXYs1t5pSwEgLy8vJr/t2rV8Ibjarj928ep72pHf5GcnFxn29SpU5WQkKCvvvpKmzdvVlxcnM4//3xddtlldS7n3bBhg7p3767o6GgvVQwgkE3rLh0ukxY1YL3A6d2k0UmerwneE2pzvM+7dbW0q/71jmtEh0hP93Nc0Qc0RHV/sEmTJk4tLulKuF0tMTFR+/btk91uV0FBgZo3b+5a8R4Q0AH38Wzfvl2maapz5851Oq833nijXnjhBU2YMEF///vfVVpaqhkzZqh///6aMGGCjyp23fDmLVQ+/rITHnOy/XBNq2jpjWHSq99LC/dLxb8JOcNs0rmtpD90kdo6Mdob1jEgQZo1VHrte2l5jvTbZSYah0kXtpOu7yLFBOVf48B3dUepXYz05m7p27y6+9vGSL9LcVy+yMjdwBNqkx7rK83ZI81Nl7LrWXMrtal0XWcuR/akQOwLDR06VB06dFB5ebmiohr+CfmXX37pUrgtOS5LnTBhgsLDw50K1b0tOTm5Tshts9k0btw4jRs37oTn5ufna/fu3br22ms9WKH3BeLvAGAVIYb09zOl7k2k//xY/+Cnnk2kazpJw11fWw1+rEmE9K+h0r++lz7eJxVU1N5vk+O5v7GL1KmxT0oMCoH4Wjh+/HgVFhYqIsK5OW3effddl8JtSRowYIDatGmj8PBwp0J1bwjKSKV6cZzfTk8iOZ7cJUuW6I477tDll1+u0NBQjRs3Ts8++6xLE7YjuDWJkO7pJd3WVfrygPSPLY7thqQFo5hbKxh0biw91V/KKZG+OiA9u92x3ZC04Dwp0olpTGBNZ7dyfO3Ml1b/JL38nWO7IemDcyQbwXZACzGkKzs6pqFadVD60zrJlOP5f284b2TgmuMt6nMy5557rnbu3Kl169Y5FW5LUrdu3dStW2BfalK9MDzzbwNwJ5shXZ4iXdZBWnNIumPNr32Bt8+STo/3cYHwuJhQaXp36abTpSUHpL9udmw3JH08iqu54ZoxY8a4dN4VV1yhjIwM5ebmOhVuS6oztZs/IeCux2mnnVbv1CaAq2LDHIvHPbrFMYrXEOF2sEmMkqacJv3f9l/bAOF2cOka7/j653e/tgHC7eARYkjDEh3Pe/WbWsJteFtISIhuu+02paenq2PHjr4ux++MGDFCw4cPV1hYmK9LARCAbIY0uEXtvgDhdnCJDHFMY/i3zb++HyDchrfFxsbq3nvv1ZEjR9SmTRtfl+M2QTkk+WQBNwAAABCIQkJCCLePIyQkhHA7QCQnJ6tLly56/fXXa7bNmjVLnTp10mmnnaYbbrhBFRWOeQJWrFih1NRUGYbh1/PLe0PeynnK+L9rtfvRifr25s7acUdv7frrKJVm7/Z1aQAAN4qNjQ2ocFsK0hHcS5Ys8XUJAAAAAAAPmTt3rlJTUyVJ6enpeuCBB7Rp0ya1bNlSEyZM0GuvvaZbb71Vw4YNU1pamgwWw1D+mo/UZOhlMkLC1KjPaBmGoZ8WvKi9L16vLo8s83V5AAAcV1CO4AYAAAAAWN/q1as1dOhQ9e7dW7169dL//ve/OsfMmzdPF154oRITE2UYhm666SbNmTPHB9X6TmVhvrb+PklpVzbTjump2n5rV22aFKGMF66XJJmVFSr8bqUa9xmjxn3H1AT+MZ0HqvynDB9WDgDAyQXlCG4AAAAAgLUdPnxYEydO1Lx58zRs2DDZ7fZ6pxnZt2+f2rdvX3M7OTlZ+/bt82KlvhcaG6+mZ12hkKg4tZr8gI5s+lw58x5V8u2OaVyObluqmNMHywitPU3PT5/+n+L7T/BFyQAANBgBNwAAAADAclavXq0uXbpo2LBhkiSbzaamTZv6uCrf+G7GIJUe+KHefd2e3azwhLYqTk9Ti3HTJEnFezYqOuWMmmPy185Xk4EX1Tov+/1HVZa9W+0f/spzhQMA4AYE3AAAAACAgNWuXTvt2bOn5nZGRobatWvnw4rc7/QnVp/0mJL0tJpQu3jPRsX3v1CSZJqmjmz+XG2mPlFzbM5HTyl/9Yfq9NCXskVEe6ZoAADchDm4AQAAAACWM3jwYP3www9asWKFJMlut+vw4cN1jps0aZI+/vhj5eTkyDRN/fOf/9Tll1/u7XJ9qvznLEmGwpu1kSSVZGxVVPuekqTiXesUldRVIVGxkqSD/3tGeSvmqNNDXyg0Nt5HFQMA0HAE3AAAAAAAy2nSpIk++ugj3XPPPerVq5fOPPNMrVy5ss5xKSkp+vvf/64hQ4aoY8eOSkhI0B/+8AcfVOw7xT9urjUlSUhMvH5a+LIkKW/NR4ofMFGSVJ6bqczZd6qyKF+77h+hHdNTtfPPA3xRMgAADcYUJQAAAAAASxo4cGCdUPv222+vc9wNN9ygG264wVtl+Z34fuMU329cze2uT6+v+f+R9Z+o5T+WSpLCmyepz/9Mr9cHAMCpYAQ3AAAAACBgJCQk6Morr9Trr79+0mNXrFih1NRUtWzZUjZbcL497v7idoXFt/B1GQAAuIwR3AAAAACAgLF+/fqTH/SLYcOGKS0tzXPFAAAAjwvOj6gBAAAAAAAAAJZHwA0AAAAA8A8hIXU2mRWVPigEbldeUXdbKBeVAwBOHa8m/ioiQqH//bevq2i4iAhfVwAAAAKJ1fpCklv7QyEhIZo0aZLb7u/JV+fqaFGR4mJidNcfJte57Q4h9QSTp3p/7vwZeINbfwbB+jsQE1N3W3aO1C7p1O/bYiJDpBVjfF2FcyJP8CtgZufU3RgT7bliAFhfsL4W/oL+YMMRcPspwzCkyEhflwEAAOATwd4XMgxDoW4c2WhKspuOf0NDQ+vc9kfu/hlYTdD+DjSKk5o2kQ7n1Wyyr1qjkHaX+LAo3zAMKSqAfgXMVWtrb2jbRkYQ/44DOLmgfS38Bf3BhmOKEgAAAACAXzBsNtkGD6i1zf7hx7Jv+dZHFeFUmaYp+9oNsi/6otZ225BBPqoIABBorB3PAwAAAAACijFkoPTpZ79uKC1T1QMPq6p9W9l69XBMY2IzfFcgGsZul44Wyp62Tco6UGe3behAHxQFAAhEBNwAAAAAAL9hdO0iY2A/mWvW196xd7/se/f7pii4lXHOcBnt2vq6DABAgGCKEgAAAACA3zBsNoXcNV3GwH6+LgUeYIw4SyG33+TrMgAAAYSAGwAAAADgV4ywUIXcNV22i8Y7Fp2E9SU0l23yJIVMu1lGCFEEAMB9mKIEAAAAAOB3jLBQhVx7pWxTr9CLr/1HR48WKda065aqQr1sRKtQhmJl6haz2Neloj6GIUVFyWjaREb/PjI6d5RhMHc6AMD9CLgBAAAAAH7LsNl0tMpUgd2UYmMVeusfVPjSuyooLJJiYxR6682+LhEAAPgQ1wUBAAAAAAAAACyJgBsAAAAAAAAAYEkE3AAAAAAAAAAASyLgBgAAAAAAAABYEgE3AAAAAAAAAMCSCLgBAAAAAAAAAJZEwA0AAAAAAAAAsCQCbgAAAAAAAACAJRFwAwAAAAAAAAAsiYAbAAAAAAAAAGBJBNwAAAAAAAAAAEsK9XUBqJ9pmiouqfR1GQ0WHRUqwzB8XQYAAAAAAACAIELA7aeKSyoVO/AtX5fRYIVrrlZMdJivywAAAAAAAAAQRJiiBAAAAAAAAABgSQTcAAAAAAAAAABLIuAGAAAAAAAAAFgSATcAAAAAAAAAwJIIuAEAAAAAAAAAlkTADQAAAAAAAACwJAJuAAAAAAAAAIAlEXADAAAAAAAAACyJgBsAAAAAAAAAYEkE3AAAAAAAAAAASyLgBgAAAAAAAABYEgE3AAAAAAAAAMCSgiLgzs3N1YwZM9SxY0dFRkaqbdu2uuOOO1RUVKTrrrtOhmHoxRdf9HWZAAAAAAAAAAAnBHzAnZaWpp49e+rJJ59UTk6OunXrpoqKCj3//POaPHmydu7cKUlKTU31baEe8si0PjK3XqdrJ3aqd//SWWNUuuEade/YxMuVBZc9BdKz30r2X27bJW09LJmmL6uCt5imtO6Q9I+02m0gs8iHRcGryqqkhfulBzb92gZMSQXlvqwK3pRfJr21u/bfgMVZUoX9RGcBAIBAUVAuvbundl9g4X6pvMqXVcGbMoukl3bWbgPrD5ELAO4Q6usCPCk3N1fjx49XTk6O7rzzTj344IOKi4uTJD3xxBO6++67FRoaKsMw1KtXLx9X6xl/e3mzxg9vp2f+PECLV2cp62Bxzb7pV3bX2f1a6Z7n1mv77jwfVhm49hRIj2+TNv1cd9/vv5E6N5Lu7CH1ae792uAdX+dIz++Q9hbW3XfRV9LgFtJfekmJ0d6vDZ5nmtK/d0vv7JHyfxNmm5JGL5YubCfd0V2KDPFJifCwokrp6W+lzzKl8t+E2fdulJpFSNd2kiZ3kAzDNzUCAADPKa2UntshfbJPKvtNX+Cvm6VntktXnSZd3ZG+QKDKLpZmbpVW/+R4D3Csm1dLybHStG7SWYk+KQ8ICAE9gnvatGnKzMzUbbfdpqeeeqom3JakGTNmqHfv3qqsrFRycrIaNWrkw0o9p6LSrqn3L1dMVJhm/W1YzfbOyY31yO19tWbrT3ryzW0+rDBwbc+Trvum/nC72q4C6dbV0rJs79UF75m/V/rzuvrDbcnRuVn5k3TNCmnfcY6BdZmm9PAW6cWddcPtamV26f0Mx9+BkkqvlgcvKKyQ/rBS+nhf3XC72s9l0lPfOkJwRu8AABBYSiqlW1ZL8zLqhtvV8sulF3ZKj2yhLxCIMgod7/dW1RNuH3vMneuk/+3zamlAQAnYgHvnzp2aO3eumjdvrpkzZ9Z7TJ8+fSRJvXv3rtlWHYj3799fERERMgLgI9TNO3/WzFlbdP6QJN0wqYtsNkNvPXKWDEOaev9y2e28irrb4TLpj2ulwgYEVpWmYxTf7gLP1wXv2ZgrPbrl+J2YY+WWSdPWSKVcnhhQ/r3bEWw2xJbD0kNpHi0HPnDvRum7Iw079j/pjg87AABA4Ph7mrS1gRdLz9/n6D8icJRWSnescQxoOBlTjg85Np9ggByA4wvYgHvOnDmy2+2aMmWKYmNj6z0mKipKUu2Ae/fu3frggw+UmJiofv36eaVWb3j4tc1K++5nPXVnf73wl0Ea0LOF7ntho3ZlNPCdN5zy0V7psBNz65bbHfOxIXC8+cOvc6s1RGaxYz5eBIbSKultJ9+gfHHg+KP9YT078x0jdZzx7x+kSubkBgAgIGQclb484Nw57+xxrN2CwPBZlpRVfPLjqtlNx/tIAM4L2IB7yZIlkqQRI0Yc95jMzExJtQPus846S9nZ2fr44481cuRIzxbpRZWVpqbev1yRESG6ZXJXrdiUo+fe+dbXZQWkSrv04V7nz1ucJR1hwbmAsL9QWn3I+fPmZbi9FPjIl1nSkQrnz/sgw+2lwEdc+X0+WCqtOOj2UgAAgA+40hfIL5e+cjIUh38yTem/6c6ft+onx2KUAJwTsAH33r2OhLF9+/b17q+srNTKlSsl1Q64bbaA/ZHoSGG5yn5Zonnhiv3M7+UhGYXSwRLnzyuzn3i+bljHGhfCbUnakS/lN+DyNfi/VS62AWdH/MJ/rXbxuaQNAAAQGFx9TacvEBjyyh1rbjnLlOvvJ4FgFurrAjylqMjxkVdJSf1J49y5c5Wbm6u4uDh16NDBo7X07dtXOTk5Tp1jV5jU9H631vHGQ8MUHhaiHXvydP+Nqfrv5+n6MfOoW+67U+fOssmF4YoBKOy0fmp250cunXvj7X9UyZr33VwRvC3m/FsVN+EvLp3be8AQVeW6cAkA/EqTW95SRI9znD5vT2aOkpL6eqAieFuLZ76TLbL+KdJO5L0PP9YrY2/xQEUIdhddO10xsY2UnZOtpKSkOrcBf0cbhtUkzNykkMYtnD5v/mdf6s0J17i/IHhVSEIHJfx9hUvn3vf3RzX9i5fdXBHg/6+liYmJ2rBhg0vnBmzAnZiYqLy8PG3atEmDBg2qtS87O1t33XWXJKlXr14eX0gyJydHWVlOTq5rhEtN3VfD7Vd004j+rXXv8xv0v6V7tWnuRM1+aJjO/v1Ct9x/9oEDksn8GpIUFdFCzVw8Nzc7U/nOthX4nRY/5SjOxXMP7N2jynzmKLC6iILDinDhvIrio86/XsAvNSstcingLsrLpQ3AI+xVVTX/ZmVl1bkN+DvaMKymSUmhSwF38ZGfadMBIKzEVIKL5+b9dECHaAPwgEB+LQ3YgHvkyJHauXOnHn/8cY0aNUqdO3eWJK1fv15XXXWVcnNzJUmpqakeryUxMdHpc+wKU7abHr9ju0aaeUdfrdt2SI/P3iq73dTfXtmkmXf00+1XdNML7+045cdo1bo1I7h/YZhHZS8pkC2qkVPnmXa7GhVmKaZNGw9VBm8Jy3dMtmaaplMfoFX9vF8tY8OlGNqA1YUe/N6l88zMb9WGvwEBoWr/VoXFj3L6vLBDu2gD8AhbSEjNv23atKlzG/B3tGFYjT1zm5SY4vR5oQe/p00HAsOmqsNZCmna8Oey+v1jTH6GwmkD8AB/fy11JT+tFrAB94wZM/Tee+9p//796t69u04//XSVlpZq9+7dGj16tJKTk/X555/Xmn/bU1wZXl9UXKHYgW+d8mMbhvTmw2cpxGZo6v1fy253TLz9xBvbdPG5yZp5R18tWL7/lKcq+WHXLsVEh51yvYHiyW3SXCcXlBiSaNPzW1Z5piB4lWlKU76WdhU4d3XIHUPb6pr9+zxUFbwpv0wa84VUbnfuvHf/eJFS/3GRZ4qCV31zUJq+1rlzYkKlr99+TDGhj3mmKAS1R196VwWFRWqV2EqZmZl1bgP+jjYMq9n0s3TjSufOCbdJ6/71V8WH/9UzRcGrZu2SXvmu4ccbhqGujaW3vvlUHp5oAEEqkF9LA3ZFxaSkJK1YsUJjx45VZGSkMjIy1LRpU7366qtasGCBdu3aJUleCbh96c6pPTXkjJb668ub9F36kZrtdrupax5YrtAQm2Y/NMyHFQamS5OlUCdfkH7n/If78FOGIV3h5PMZHSJd2M4z9cD74iOk0U5OYdYtXurtxqmp4FuDWkjtnZyhZEI7R8gNAACs74ym0umNnTtnbFspPtwz9cD7JraTokKcO+d3KSLcBlwQsAG3JHXt2lWffvqpjh49qqNHj2rt2rW68cYbVVRUpIyMDNlsNvXo0cPXZXrM6R0a6+Fbz9TqLT/p6X9/W2f/jj35+tsrmzS8byvdfkU3H1QYuJLjpAdSpYa+Lt3YxRGGIHCMbStd3L5hx4Ya0mP9pKauTNoMv/XnHo7QuiGaR0iP96UzG0hCDOnp/lLjBl7cdGYz6baunq0JAAB4j2FIT/STmjWwj9+jifSn7p6tCd7VLFKa2dfRL2yIS5OdHyQDwCEoxwlt375dpmmqc+fOio6OrrN/3rx5kqQdO3bUup2cnKy+fft6r9BT9F36EUX1+/cJj3ls1lY9NmurlyoKLmPbShEh0iNbpKPHmZ48wibd0tX50b7wf4Yh3dPLMQLjrd1SpVn/cc0ipH+cKfVzdQUS+K2oUOnlQdKDm6Wvc45/3OmNHW9+WtV9OYLFJcdKs4dJd62XfjzBTGDntZH+2lsKd3KEDwAA8G+to6XZQ6UZG6Tvjxz/uLMTpb+f6eg/IrAMbSk9P1D66ybp57L6jwk1pKmdpJu6MOAFcFVQ/vnctm2bpONPT3LppZfWe3vq1Kl68803PVobAsvI1tLQFtLiA9L/9klbDv+670/dpXFtpUZcghawbIbjA4zJHRzP/+IsafcxIdejfaQRraSwgL6WJrjFhjlG8e4pkOZlSGsOSfuLft3/ryFSalM6soGsfaw092xpfa70foa09JgVpK9IkSYlOz+VCQAAsI42MdI7Z0mbD0vvp0tfHPh132UdpEuSpZQ4n5UHLxiQIH06SlqSLX20V9qQ++u+W7tKF7Z1jPYG4DoC7nqY5nGGWgIuiAx1zK18YTup/8eSXY65ga44zdeVwVuaRUq/7+z4OrYNnOf7RYrhJac1ku7u5fj/sW3gjGa+rAreYhhS/4Rfvo55/v8UuLOkAQCAYxiGYzqyM5tJXx3TF5jR09eVwVvCbNL5bRxfx/YHr+3k68qAwBCU4wZPFnADAAAAAAAAAPxfUI7gXrJkia9LAAAAAAAAAACcoqAcwQ0AAAAAAAAAsD4CbgAAAAAAAACAJRFwAwAAAAAAAAAsiYAbAAAAAAAAAGBJBNwAAAAAAAAAAEsi4AYAAAAAAAAAWBIBNwAAAAAAAADAkgi4AQAAAAAAAACWRMANAAAAAAAAALAkAm4AAAAAAAAAgCURcAMAAAAAAAAALImAGwAAAAAAAABgSaG+LgD1i44KVeGaq31dRoNFR9GUAAAAAAAAAHgXqaSfMgxDMdFhvi4DAAAAAAAAAPwWU5QAfio5OVldunRRamqqunXrppdeeum4x1566aVavXp1g+533rx5uvnmm2tte+ONN2QYhubPn1+zbdiwYUpPT3epdpw6nn/QBkAbAAAguNEXAG0AaBgCbsCPzZ07V2lpaVq0aJHuvfdebd26tc4x69at0+HDhzVo0KAG3edHH32kiRMn1tzOyMjQv/71Lw0cOLDWcXfeeacefPDBU6ofp4bnH7QB0AYAAAhu9AVAGwBOjoAbsID27durS5cu2rVrV519r776qq644gpJUn5+vpKSktSsWTOlpqaqa9euioiI0PXXXy9Jqqio0MqVK3XOOedIkux2u66//nq98MILioiIqHW/Y8eO1aJFi3TkyBEPf3c4GZ5/0AZAGwAAILjRFwBtADg+Am7AArZt26bvvvtOvXv3rrNv2bJlGjBggCQpPj5eV1xxhaZPn660tDQ999xzGjhwoF5//XVJ0tKlSzV48GCFhTnmd3/mmWc0ZMgQ9enTp879hoWFqWfPnlqxYoUHvzM0BM8/aAOgDQAAENzoC4A2ABwfi0wCfmzy5MmKiopSdHS0Zs+erU6dOtU5JjMzUy1btqy5nZaWpmnTpkmSNm7cqDPOOKNm3/z583XRRRdJkr799lt98MEHWr58+XEfPzExUZmZme76duAknn/QBkAbAAAguNEXAG0AODkCbsCPzZ07V6mpqSc8Jjo6WqWlpTW309LSal68Nm7cqAsvvFCSZJqmPv/8cz3xxBOSpBUrVigjI6PmxTEnJ0c33nijsrOzaxabKC0tVVRUlLu/LTQQzz9oA6ANAAAQ3OgLgDYAnBxTlAAW16tXL33//feSpKysLBmGoTZt2kiStm7dqp49e0pyLDrRtWtXxcbGSpJuvvlmZWdnKyMjQxkZGRo4cKBee+21Wisp79y5s97Ln+A/eP5BGwBtAACA4EZfALQBBDsCbsDiLrnkEn3++eeSpM2bN9e69Cg+Pl4vv/yypLqrJJ9MRkaGqqqqeCHzczz/oA2ANgAAQHCjLwDaAIKdYZqm6esigGDR/2PJLscnS+sudM99FhYWavDgwVq9erViYmKOe1z37t21dOlStWjRokH3e88996hjx441Ky3DPdzdBnj+rYc2ENx4HYCvPPrSuyooLFKj2Bjde+uUOrcBf0cbRqCgLwDaAHwlkF9LGcENWFxsbKyeffZZpaenn/C47du3N/hFTJJat26t3//+96daHjyM5x+0AdAGAAAIbvQFQBtAsGORSSAAnHvuuW6/z+oVl+H/eP5BGwBtAACA4EZfALQBBDNGcAMAAAAAAAAALImAGwAAAAAAAABgSQTcAAAAAAAAAABLIuAGAAAAAAAAAFgSATcAAAAAAAAAwJIIuAEAAAAAAAAAlhTq6wJQP9M0VVxS6esyGiw6KlSGYfi6DAAAAAAAAABBhIDbTxWXVCp24Fu+LqPBCtdcrZjoMF+XAQAAAAAAACCIMEUJAAAAAAAAAMCSCLgBAAAAAAAAAJZEwA0AAAAAAAAAsCQCbgAAAAAAAACAJRFwAwAAAAAAAAAsiYAbAAAAAAAAAGBJBNwAAAAAAAAAAEsi4AYAAAAAAAAAWBIBNwAAAAAAAADAkgi4AQAAAAAAAACWRMANAAAAAAAAALAkAm4AAAAAAAAAgCURcAMAAAAAAAAALCkoAu7c3FzNmDFDHTt2VGRkpNq2bas77rhDRUVFuu6662QYhl588UVfl+kRj0zrI3Prdbp2Yqd69y+dNUalG65R945NvFxZ8NlTIJm//N+UZJonOhqBpsqUth6u3QYQXEoqpfWHaAPBLLe09vNfWuXLagAAgLcdLqvdFyip9GU18IV9hbXbQBVvCgC3CPV1AZ6Wlpam0aNHKycnRzExMerWrZsOHDig559/Xnv27NHhw4clSampqb4t1EP+9vJmjR/eTs/8eYAWr85S1sHimn3Tr+yus/u10j3Prdf23Xk+rDJwVdqlz7KkeRnSt8f8iE1Jly2VJiVLE9pJUQH/mxi8CsqlD/c6vg78+usnU9JNq6RLkqVzW0mG4asK4Wn7C6W56dKn+6XCY97EmJIe2ChNTpF68BljQNv8s6MNLM2u/YZm7GLpwnbSZR2kVtG+rBAAAHjSt3nSf36UvjxQuy8werE0vp00uYOUFOPLCuFJpil9lS29ny5t/PmY7ZIu/kq6qL0jG4gL81WFgPUF9Aju3NxcjR8/Xjk5ObrzzjuVnZ2tTZs2KScnR48//rgWLFig9evXyzAM9erVy9flekRFpV1T71+umKgwzfrbsJrtnZMb65Hb+2rN1p/05JvbfFhh4CqplO5cJ/1tc+1wu1p6ofTUt9INK6WfS71fHzwvs0iaukJ6cWftcLvahlzpng3Sg5sdH4Yg8Kz5SZrytfSf9NrhdrVFWdK1KxzhJwLTmz84/s5/eaDuCJ0jFdLbe6QrvnaE4AAAIPD850dHf++zLKnyN32Bwkppzo+OvsCan3xTHzyr0i79dZPjfd/Gevp7WcWO94tTl0tZRd6vDwgUAR1wT5s2TZmZmbrtttv01FNPKS4urmbfjBkz1Lt3b1VWVio5OVmNGjXyYaWetXnnz5o5a4vOH5KkGyZ1kc1m6K1HzpJhSFPvXy67nWti3K3KlO7dKK1sQCfluyPStLVSMZenBZTDZdKtq6X9DeikLMyUZm5l2ppAs/Ww9Kd1UvFJpqEwJT25Tfp0n1fKghf950fHG5aTOVoh3bFG+v6I52sCAADe8799jkFNJ+vmF1c6+o3bDnulLHiJaUqPbHEMajmZfUWO9495ZZ6vCwhEARtw79y5U3PnzlXz5s01c+bMeo/p06ePJKl379412+bNm6dJkyapffv2io6O1umnn6777rtPhYWFXqnbUx5+bbPSvvtZT93ZXy/8ZZAG9Gyh+17YqF0ZvJv2hK+zpRUHG37890cclyshcLzxg+PT+Ib63776R/rDmkxTemKbVO7EyPwnv2UexkCSXy49v6PhxxdXSc9u91w9AADAu4oqpWe+bfjx5XZHfxCBY8th6ZP9DT8+s1j6927P1QMEsoANuOfMmSO73a4pU6YoNja23mOioqIk1Q64n3rqKYWEhOjRRx/VokWLdPPNN+uVV17RBRdcILvdunMIVFaamnr/ckVGhOiWyV21YlOOnnuHV09PmZfh/Dkf7pUYTB8YSiqlT1wYjft+httLgY9sz3dcneGMokrHpasIDJ/sc+4DDskxbVH6Uc/UAwAAvGtRpqN/54wd+Y4vBAZXcoGP97EQOeCKgF3absmSJZKkESNGHPeYzMxMSbUD7k8++UQJCQk1t4cPH66EhARNmTJF33zzjc466ywPVex5RwrLVVZepfCwEC1csZ/pEDwkp0Ral+v8eVnFjjlY+zR3f03wrq9z6p9v+WS+OCDd20uKDNi/zMHjUydGahzrk32ORWZgfa62gU/3S7d3c28tAADA+06lL9At3q2lwAeKKx1rsDiroEJakSONauP+moBAFrAxyt69eyVJ7dvXnxRUVlZq5cqVkmoH3MeG29X69u0rScrKcm1oXd++fZWTk+PUOXaFSU3vd+nxjueNh4YpPCxEO/bk6f4bU/Xfz9P1Y6Z7hop16txZNlW45b6sLqzDmWp218cunTv5xmkqXfehmyuCt8WMullxF93n9HkVdqnzmQNkP8wwXquLv/kNRfYc5fR5m/dkKel3AzxQEbytxVPbZYtu7PR5/3zvIz3+5u0eqAjB7qJrpysmtpGyc7KVlJRU5zbg72jDsJqERzcoJD7R6fPemv+Znh99vQcqgjeFNGunhIdXuXTurfc+pOKvXnNzRYD/v5YmJiZqw4YNLp0bsAF3UZFjZbeSkpJ698+dO1e5ubmKi4tThw4dTnhfS5culSR17drVpVpycnKcD8eNcKmpSw9Xr9uv6KYR/Vvr3uc36H9L92rT3Ima/dAwnf37hW65/+wDBySz3C33ZXUxMUlq5uK5eYd/1mEXP0iB/2h5JF9xJz+sXjnZ2arIpQ1YXWRJiSJdOK+ystLlD1PhX5rb7S7NA1dcXEQbgEfYq6pq/s3KyqpzG/B3tGFYTdPKSoW4cF5JSQltOgCEV4Sp7vDJhjmSn6+faAPwgEB+LQ3YgDsxMVF5eXnatGmTBg0aVGtfdna27rrrLklSr169ZBjGce8nKytLDzzwgC644AKlpqa6XIuz7ApTtkuPVlfHdo00846+WrftkB6fvVV2u6m/vbJJM+/op9uv6KYX3nNiFazjaNW6NSO4f2ELc/yBME3zhG2rPo1Uqqg2XItkdZFVRS6dZ1aUqkVsuBRBG7C6sJLDLp1nFBxUG/4GBATzSI4U28Tp8yLK8mkD8AhbSEjNv23atKlzG/B3tGFYTsFBqbnzIyLDS/Jo0wHACA+VWVEmIyzC6XNj7UUKow3AA/z9tdSV/LRawAbcI0eO1M6dO/X4449r1KhR6ty5syRp/fr1uuqqq5Sb65gk+UShdWFhoSZMmKDw8HDNnj3b5VpcGV5fVFyh2IFvufyY1QxDevPhsxRiMzT1/q9l/2UVwyfe2KaLz03WzDv6asHy/ac8VckPu3YpJjrslOsNFLeultYeci7cbhMtrVv6gWzOnQY/VFopjfnCMX+aM8anROpv6SybHQh25EtXL3f+vIcm9dfEP2W6vR543zt7pOe2O3/eZ4/fpuSXbnN/QQh6j770rgoKi9QqsZUyMzPr3Ab8HW0YVvNhhvToVufP++jB3+v0Z3/v9nrgfQ9sciw26ozGYdLK+a8qwpXh/8BJBPJrqStXz1rCjBkz1KxZM+3fv1/du3dXz5491alTJ/Xv318pKSk655xzJNWef/tYJSUlGj9+vNLT07V48WK1atXKm+W7zZ1Te2rIGS3115c36bv0IzXb7XZT1zywXKEhNs1+aJgPKwxMlyY7f84lySLcDhCRodL4ts6fd0my20uBj3SLd35xoNhQ6QLff2gONxnfVopwspfVv7mUHOuZegAAgHddkCTFODmksEcT6fR4j5QDH3AlF7iwnQi3ARcEbMCdlJSkFStWaOzYsYqMjFRGRoaaNm2qV199VQsWLNCuXbsk1R9wV1RU6JJLLtGGDRu0aNEidevWzdvlu8XpHRrr4VvP1OotP+npf39bZ/+OPfn62yubNLxvK91+hTW/R381LFE624krK7rFE24Gmms7Se1iGn78xe2l7vEeKwc+cHdP5wLOu3s5PhxBYGgcLv2xR8OPjwmV/uTE8QAAwL9Fh0p39Wz48ZEh0gwnjof/69lEuqh9w49vFyNN7eS5eoBAFtBvpbt27apPP/20zvbCwkJlZGTIZrOpR4/a7ybtdrumTJmir776SgsXLlT//v29Va7bfZd+RFH9/n3CYx6btVWPzXLhuimcUIgh/aOPdN9G6eucEx/bPV56boAUFdC/jcEnPkJ6cZA0bY2UUXjiYy9s5+jMOjllO/xc9ybSswOku9ZLRZXHP84m6Z5e0mjfL1oNN7skWSqtOvlUJY3DpGcGSB0beaUsAADgJePaOqYvfGKbZD/BcTGh0tP9nb8CEP7NMByDXirt0if7T3xsh1jp+YFSfLh3agMCTVBGatu3b5dpmurcubOio6Nr7bv11lv1/vvv65577lF0dLTWrFlTs++0005TQoKr6+Ai2ESGSE/0k77IkuZlSGm/WXOuY5x0SQdHpyeSS5ACUuto6c1h0vx90gcZ0v7frD05KMHRBs5qSbgdqPonSHPOlt5Plz7eJx05Zl72CJt0XhtpcgcuRQ1kV54m9W4izU2XvjwgVZq/7msSLk1s7wjCW0b5rEQAAOBBl3RwDHyYmy4tzpLKj0m6G4c5Brtc2sHx3gGBJ9Qm/TVVGp7oyAXWHKq9v22Moy84oZ0Uy7JmgMuCMuDetm2bpPqnJ1m0aJEk6bHHHtNjjz1Wa98bb7yha665xuP1IXCEGI651y5IcozizSmWqkwpIVLq1IhQMxjEhjkCritSpO+OSIfLpFDD0ZFp48QUJrCu1tHSHd2lP5wu7cyXCiscV2x0bMQIjWDRs6nj6089pB+PSiWVUlyYY5RWOB9wAgAQ8LrGS387Q5reXdpd4OgLxIY5tjPYKfAZhnR2K8dXVpFj4FOlKTWNkE5vzFpcgDsQcP9GRkaGl6tBsEiOZfGwYGYzuOQw2EWGSGc083UV8KWmEY4vAAAQnOLDpb7NfV0FfKkNA50AjwjYRSZP5EQBNwAAAAAAAADAGoJyBPeSJUt8XQIAAAAAAAAA4BQF5QhuAAAAAAAAAID1EXADAAAAAAAAACyJgBsAAAAAAAAAYEkE3AAAAAAAAAAASyLgBgAAAAAAAABYEgE3AAAAAAAAAMCSCLgBAAAAAAAAAJZEwA0AAAAAAAAAsCQCbgAAAAAAAACAJRFwAwAAAAAAAAAsiYAbAAAAAAAAAGBJob4uAPWLjgpV4ZqrfV1Gg0VH0ZQAAAAAAAAAeBeppJ8yDEMx0WG+LgMAAAAAAAAA/BZTlAAAAAAAAAAALImAGwAAAAAAAABgSQTcAAAAAAAAAABLIuAGAAAAAAAAAFgSATcAAAAAAAAAwJIIuAEAAAAAAAAAlkTADQAAAAAAAACwJAJuAAAAAAAAAIAlEXADAAAAAAAAACyJgBsAAAAAAAAAYEkE3AAAAAAAAAAASyLgBgAAAAAAAABYEgE3AAAAAAAAAMCSCLgBAAAAAAAAAJZEwA0AAAAAAAAAsCQCbgAAAAAAAACAJRFwAwAAAAAAAAAsiYAbAAAAAAAAAGBJBNwAAAAAAAAAAEsi4AYAAAAAAAAAWBIBNwAAAAAAAADAkgi4/cDbb7+tPn36qEmTJoqKilLXrl31zDPPyDRNX5cGAAAA1GvhwoVKTU1VRESEkpOT9cwzz/i6JAAAAHjR8uXLNWHCBLVv316GYegf//iHT+oI9cmjopYWLVrogQceUJcuXRQREaEVK1bolltuUUhIiO644w5flwcAAADUsmHDBk2YMEF//vOfNWfOHK1du1Y33XSToqOjddNNN/m6PAAAAHhBYWGhunXrpiuuuELTp0/3WR0E3H7g/PPPr3U7JSVF8+fP17Jlywi4AQAA4HeeeeYZ9evXTzNnzpQkde3aVdu3b9djjz1GwA0AABAkxowZozFjxkiS7r77bp/VwRQlfsY0Ta1bt04rV67UiBEjfF0OAAAAUMfKlSt1wQUX1Np2wQUXaO/evcrMzPRRVQAAAAhGjOD2E0eOHFGbNm1UXl4uu92uBx98UNOmTfN1WQAAALAQ0zS1e2+WfruUS2VVVc2/u9Iz69w+VnxcjFo0b3LCx8nOzlZiYmKtbdW3s7OzlZSUdCrfBgAAAFxUVl6hvVkH62x3pj/YsnkTNY6L8XyxbkLA7Sfi4uKUlpam4uJirVq1Sn/5y1/UunVrXXfddb4uDQAAABZhGIZ2Z2Tp67Vb6t1fXFKq2f9deNzboSEhum3qRR6vEwAAAJ4RHhaqb9ZvrRNaVztZf7BxXIym//4Sj9fpTkxR4idsNps6duyoXr166aabbtKMGTN03333+bosAAAAWMyooX3VqkUzl849/6x+SkxoetLjWrVqpZycnFrbDh48WLMPAAAAvmEYhi4ZPVxRkREunX/p2LNdPtdXCLj9lN1uV2lpqa/LAAAAgMWEhoZo8rgRCglxrquf0q61hvTr2aBjhwwZos8//7zWts8++0zt27dnehIAAAAfaxQXo4vOG+r0eUP69lDH9m08UJFnMUWJH3jwwQc1bNgwpaSkqKKiQsuXL9fjjz+ua6+91telAQAAwIISE5rq/LP6a+HSNQ06PiI8TJeNPVs2w2jQ8X/84x81ePBg3Xfffbrqqqu0du1avfDCC3r22WdPpWwAAAC4Sa+up2nH7r1K27G7Qce3aNZEF5zV36nHKCws1O7djvsvLy9XTk6O0tLSFBsbq44dOzpds6sIuP1AQUGBbrrpJmVlZSkyMlIpKSmaOXOmbrrpJl+XBgAAAIsa2q+ndu7eq/T92Sc9dsKoIYpvFNvg++7Xr5/mz5+ve++9V0899ZQSExP1yCOP0H8FAADwIxeOGqL0/dk6crTohMfZbIYmjx+hsDDnouINGzZoxIgRNbdfeuklvfTSSxo+fLiWLVvmSskuMUzzt2usAwAAAAgEeUeO6rnZ81RWXnHcY3p07qApE0fKaODobcAXHn3pXRUUFqlRbIzuvXVKndsAAKB+uzOy9PrcBSc85vyz+mnEoDO8VJH7MQe3xezP/knFpWW+LgMAAAAW0KRxnC4cOeS4++NionTR+cMItwEAAAJUx+Q2GtKnx3H3t2vdUmcN6O3FityPKUospLKqSu989IVKy8p13WVj1K5NS1+XBAAAAD93Zo9O2rE7Q9t3ZdTZd8no4YqJjvR+UYAT7Ha7vt++RSuXfqafDuzXk/ffJiMkTB06d9ewc0b7ujwAAPzeBcP764eMTP30c36t7eFhobps3NkKsVl7DLS1q/eAqqoqvf322zrvvPOUkJCgiIgItWvXThdccIFef/11VVVV+ay2jdu+15GjRQoPD1OrFs18VgcAAACswzAMXXz+WYqNiaq1fUBqV3U5rZ2PqgIaZufOnerWrZveeuVJ7flum44W5Cs/P195Px/SptXL9H+P3K1LL71URUUnnlsUAIBgFhYWqsvGjZDNVvuqvbHnDFLzJo19VJX7EHAfo6CgQKNGjdLVV1+tL774QuHh4erdu7fsdrsWL16sG264QUePHvVJbZVVVVqyarMk6ewBqU5P+g4AAIDgFRMdqUtGD6+53axJI40dMdCHFQEnt2PHDg0ZMkTff//9CY+bN2+eLrjgApWUlHipMgAArCcpMUHnDulTc/v009qpf+/TfViR+xBwH+O6667T0qVLlZSUpCVLligrK0vr1q1TZmamsrOz9cgjjygsLMwntVWP3o6LjQ6YxgcAAADvqX4TYxiGJo8dofBw3/RrgYaoqqrSxIkTlZeX16Djv/nmG/3lL3/xcFUAAFjb2QNT1a51C0VHRWjSBWcFzDoshmmapq+L8AcbN25U3759FRoaqs2bN6tHj+NPvu6sF/79oY4WnspoAlNHi0pkmqYiI8IV7qOQHQAAANZmmqYqKivpT8Lvfbdts95+9WmnzgmPiNQ9j7ygiMiokx8MAECQstvtqrLbFRbqX7NDxMVG6fapF7t0rn99Jz40f/58SdLYsWPdGm5L0tHCEhUUumdOuNKycpWWlbvlvgAAABCc6E/C361c9rnT55SXlWrNN0t1xsDhJz8YAIAgV6IyX5fgNgTcv9ixY4ckadCgQW6/77jYUxlBwOhtAAAAAMHlYNY+l877+WCWGsXGuLkaAADgaaeSnxJw/6KgoECS1Lix+1cOdXV4vSStTdupjz5fobjYaM248XIWlwQAAAAQ8B69+w8undexXaLuvXWKm6sBAAD+jLT0F40aNZIkHTlyxO337foc3I7R25JUUVGpJ1+b697CAAAAAMAP2ULDJTk/zeOPmYf06Evvur8gAADgUczB7Qbdu3fXhx9+qNWrV7v9vt0xBzdzbwMAAAAIFh06d9fW9d84fV7b00532/pHAADAGgi4f3HRRRfp4Ycf1sKFC7Vjxw5169bNbfft2hwyzL0NAAAAIDgNPed8pwPu+CbNdEbfgbLZbB6qCgAAeMqpzMFtmKZpurEWS5s8ebL++9//ql27dnrrrbc0fPivq28fPHhQs2fP1rRp0xQT4/lFS5h7GwAAAEAwGzdunBYsWNDg41955RXddNNNHqwIAAD4IwLuYxQUFGjChAlatmyZJKlNmzZq3bq1srOzlZWVJdM0lZeXp/j4eI/WUVlVpadem6v8gkKNP3ewhvTt4dHHAwAAAAB/U1BQoJEjR2r9+vUnPfbOO+/Uk08+KcMwvFAZAADwJ1y7dYxGjRrpyy+/1KxZs3T22WeruLhYW7Zskc1m0/nnn69Zs2YpLi7O43Vs3LZL+QWFiouNVv/ep3v88QAAAADA3zRq1EhLly7VH/7wB0VGRtZ7TJs2bfTyyy8TbgMAEMQYwe2HNm//QYuWrdPwAb0ZvQ0AAAAg6OXl5enf//63Nm7cqOLiYsXHx2vcuHEaP368QkOZzhEAgGBGwO2nKiorZchQaGiIr0sBAAAAAAAAAL9EwA0AAAAAAAAAsCTm4AYAAAAAAAAAWBIBNwAAAAAAAADAkgi4AQAAAAAAAACWRMANAAAAAPAawzDUs2dPLVy40GuP+eyzz6pjx45KTU312mMCAADvYJFJAAAAAIDXGIahvLw8xcfHe+XxKisrFRoaqmXLlmn69OlKS0vzyuMCAADvYAQ3AAAAAMBnKioqdM8996h///5KTU3VZZddpry8PB06dEjJyclas2aNJGnevHnq3bu3SkpKtGzZMvXo0UNXX321evTooT59+tQE18uWLVP37t113XXXKTU1VR999JEPvzsAAOBpBNwAAAAAAJ958sknFRMTo3Xr1iktLU09e/bU/fffr4SEBL399tuaMmWK1q1bp+nTp+v9999XVFSUJGn79u2aOnWqvv32W9199926/PLLVX2B8s6dO3X11VcrLS1Nl156qS+/PQAA4GGhvi4AAAAAABC85s+fryNHjuiDDz6QJJWXlys5OVmSNGzYMF133XUaPHiw3nrrLXXu3LnmvOTkZJ177rmSpMsuu0w33nij9u/fL0lKSUnR8OHDvfuNAAAAnyDgBgAAAAD4jGmaeuGFF3TeeefVu3/z5s1KSEioCa+PxzAMGYYhSYqNjXV7nQAAwD8xRQkAAAAAwGcmTpyoZ599VsXFxZKk4uJibd++XZL04osvKi8vT1u2bNGrr76qlStX1pyXkZGhpUuXSnLMz92yZUslJSV5/xsAAAA+xQhuAAAAAIDP3H333SorK9OAAQNqRmBXb3vqqae0du1atWjRQu+8846uvPJKrV+/XpLUvXt3vfnmm5o2bZrCw8M1Z86cmvMBAEDwMMzqVTgAAAAAAPAwwzCUl5en+Ph4l+9j2bJlmj59utLS0jx6DgAA8H9MUQIAAAAA8JqWLVtq+PDhWrhwodce89lnn9Utt9yi5s2be+0xAQCAdzCCGwAAAAAAAABgSYzgBgAAAAAAAABYEgE3AAAAAAAAAMCSCLgBAAAAAAAAAJZEwA0AAAAAAAAAsCQCbgAAAAAAAACAJRFwAwAAAAAAAAAsiYAbAAAAAAAAAGBJBNwAAAAAAAAAAEsi4AYAAAAAAAAAWBIBNwAAAAAAAADAkgi4AQAAAAAAAACWRMANAAAAAAAAALAkAm4AAAAAAAAAgCURcAMAAAAAAAAALImAGwAAAAAAAABgSQTcAAAAAAAAAABLIuAGAAAAAAAAAFgSATcAAAAAAAAAwJIIuAEAAAAAAAAAlkTADQAAAAAAAACwJAJuAAAAAAAAAIAlEXADAAAAAAAAACyJgBsAAAAAAAAAYEkE3AAAAAAAAAAASyLgBgAAAAAAAABY0v8DOnUh7m63ZxYAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 1876.11x367.889 with 1 Axes>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# step 2\n",
    "\n",
    "qc.reset(0)\n",
    "qc.h(0)\n",
    "\n",
    "with qc.if_test(expr.lift(c[0])):\n",
    "    qc.p(-pi/2, 0) # phase correction\n",
    "\n",
    "for _ in range(2 ** (m - 2)):\n",
    "    qc.mcp(PHI, [0, 1], 2)\n",
    "    \n",
    "x_measurement(qc, q[0], c[1])\n",
    "qc.draw('mpl')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABroAAAJxCAYAAAAdC2LsAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAACSxUlEQVR4nOzdd3wUdf7H8ffspjdCKKEECC1ID1WqFLECgt0T29kreMeJnvVOTz27J5531lP5nR4KggWwAopIhwBSREqAQAIEkpDedn5/rARCAmSXLZnd1/PxyAN2Zr6zn83OZr+77/l+xzBN0xQAAAAAAAAAAABgMTZ/FwAAAAAAAAAAAAC4g6ALAAAAAAAAAAAAlkTQBQAAAAAAAAAAAEsi6AIAAAAAAAAAAIAlEXQBAAAAAAAAAADAkgi6AAAAAAAAAAAAYEkEXQAAAAAAAAAAALAkgi4AAAAAAAAAAABYEkEXAAAAAAAAAAAALImgCwAAAAAAAAAAAJZE0AUAAAAAAAAAAABLIugCAAAAAAAAAACAJRF0AQAAAAAAAAAAwJIIugAAAAAAAAAAAGBJBF0AAAAAAAAAAACwJIIuAAAAAAAAAAAAWBJBFwAAAAAAAAAAACyJoAsAAAAAAAAAAACWRNAFAAAAAAAAAAAASyLoAgAAAAAAAAAAgCURdAEAAAAAAAAAAMCSCLoAAAAAAAAAAABgSQRdAAAAAAAAAAAAsCSCLgAAAAAAAAAAAFgSQRcAAAAAAAAAAAAsiaALAAAAAAAAAAAAlkTQBQAAAAAAAAAAAEsi6AIAAAAAAAAAAIAlEXQBAAAAAAAAAADAkgi6AAAAAAAAAAAAYEkh/i4AAAAAAIBTMSsdUlGRVFLi71JQV5ERUlSUDBvn2AIAgNNnVlRIhUVSWZm/S0FdGIYUFSVFRsgwDK/eFUEXAAAAAKBeMouKZa5YJcePS2SuXiuVl/u7JLgqPFxG316yDRkoo28vGeHh/q4IAABYiJmTK8dPy2QuXipzwybJNP1dElwVFyvbwP4yBg+Q0b2rDLvd43dhmCZHBgAAAACgfnFs2arKx550nrWLwNCggUKefERG61b+rgQAAFiAY+EiVb78T8lBhBEw2iYr5ImHZcTFenS3zB8AAAAAAKhXCLkCVF6eKh56XOau3f6uBAAA1HOEXAFqR7oqHnlC5uF8j+6WEV0AAAAAgHrDPJyvitsmEnIFsgYNFPLWqzLCw/xdCQAAqIccm7eo8oFHCbkCmNG9i0KefMxj++MaXQAAAACAesNcuqJGyGWkdJDt/FEyenSTYqIlg8lJ6j3TIR0ukJm2TpXzvpZ27Dy6Li9P5uo0GQP7+68+AABQb5kLF9UIuYwz+8p29nAZHdtLkZGSYfipOtRZZYV0KFeOFavk+OJL6eChqlXm+o0y9+2XkdjUI3dF0AUAAAAAqDcci5dWu22ckSL73x6REcboH8uJipJx/igZZw1WxQOPSum7qlY5Fi+VjaALAAAcx6x0yPHTsmrLjHPPlv2uW2QQbllPTIzsrZNkGzxAFX/4s1RYWLXK8dMy2S8e65G7Ieiqp0zTlEpL/V1G3YWH84cGAAB4jOX6QpJH+0OmaaqystIj+/IVu93u0f5gsP8OgvU1YJaWyly7vtoy29gLgjLkMk2pxFovAUXYaz+52oiKlO38UXL8+52qZeaKVTJNk8+RAE4oWN8Ljwj2vpBkvd+BNx5/ML4GzK3bpNy8asvsF48Jyj5DQPUHmyXKGHymzK/nVy0zl6+SCLoCXGmpKq643t9V1FnIR+9JERH+LgMAAAQKi/WFJM/2hyorKzVz5kyP7MtXLr30UoWEeO7jRdD/DoL1NXA4X3I4qi0yenY/vX1aVEmlNHSuv6twzaILpcgTvARsPbur2jNbXCKVlEqRfI4EcALB+l74m6DvC8l6vwNPP/6gfQ3k5Fa/3biRjJYtTm+fFhWI/cHKY4Ou45/r08DE5gAAAACA+qG4uOaymGiP7HrBggUaMGCAYmNjZRiG3n33XY/sF3UUG1NzWW3PNwAACG7H9w9q60O4if6gn8Uc91x6sC/IiC4AAAAAQL1l2Fw7P3P48OFauXKlCgoKqpbl5OTokksuUVJSkl544QVFRUVp0KBBni4VJ1Pb82iaNZcBAAAcy40pC+kP1lPH9wc92Bck6AIAAAAABLQVK1YoNzdXb7/9ti655BJ/lwMAAAAfoz8Y2Ji6EAAAAAAQ0LKysiRJCQkJfq4EAAAA/kB/MLAxogsAAAAAELCSk5O1c+dOSdKIESOqlptMmwcAABAU6A8GPoIuAAAAAEDAevnllzVv3jy98cYbevDBB9W5c2d/lwQAAAAfoj8Y+Ai6AAAAAAABa/z48crNzdUbb7yhc845R8OHD/d3SQAAAPAh+oOBj6ALAAAAAIAAlr9+obY8PKLaMltEtCJadlLCiOvU9MK7Zdjt/ikOAAAAXhfo/UGCLgAAAAAAgkDDs36nBn0ulExT5Yf26uD8d5Xx1r0q2bVBbe56w9/lAQAAwMsCtT9I0AUAAAAAQBCIatdbjYZfU3W7yQV3aMNdnZX9zVtqMeEJhcYn+rE6AAAAeFug9gdt/i4AAAAAQP1nmqa/SwDgYfaoOEV3GiiZpkqztvu7HABAPUd/EAg8gdIfZEQXAAAAEMAcDof27dun9PR05efny+FwKDQ0VE2bNlXbtm0VExNzyn2Ypqlp06apQYMGGjdunA+qBuALpmmqNGurJCkkrrGfqwEAeEtFRYX27NmjXbt2qaioSKZpKjw8XC1atFBycrLCw8NPuY+ysjL94x//0MiRI9WnTx8fVA3AFwKlP0jQBQAAAAQYh8OhNWvW6LvvvtPmzZtVVFR0wm2bNm2qfv36adSoUWrevHmN9UdCrrlz50qSDMPQRRdd5LXaAXiPo7RIFYezZZqmynMydeCLqSresVbRnQYookVHf5cHAPCg0tJSLVmyRAsWLND27dtVXl5e63aGYahVq1YaNGiQRowYoQYNGtTYpqysTC+88ILWrl2rtWvX6o9//KN69+7t7YcAwAsCtT8YFEFXdna2nn32WX3yySfKyMhQkyZNdMkll+ipp57SxIkT9c4772jq1Km6++67/V0qAAAA4DaHw6H58+dr9uzZys7OrlOb/fv3a86cOZozZ4569Oiha665Rq1bt5ZUe8gVGxvrtfr96ZtvvtE777yj1157TQ0bNvR3OYBXZH74mDI/fOzoAptNDfpfZOkLjwMAqisrK9OsWbP09ddfq7Cw8JTbm6apXbt2adeuXZoxY4YGDRqkq6++WvHx8VX7OxJySVJISIiioqK8+RD8hv4ggkGg9gcDPuhKS0vTBRdcoKysLEVHR6tLly7au3evXnnlFW3btk2HDh2SJKWmpvq3UC/5Pnu/zlmyUH/v0kN/bH9GrduEff6RLmzaXLPPHOrj6oJDXpn0+W7ps13S3iLJNKXGEdKFSdL4NlJipL8rhLdlFEoz06Wv90iHyqQQQ2odI13cRrogSYoO+L/Ewc00pbWHpBnp0pIDUmG5FGGXujeULmsrDUmU7Ia/q4Q3VTikhVnOvwObcqWSSik21PncX5YsdeXzk1cFU19o//79ev3117Vhw4Zqyxs0aKAOHTqoXbt2atSokex2u0pLS5WRkaHt27dr+/btqqiokCStW7dOf/7zn3XZZZdpzJgx+vDDD6uFXLfeeqtGjBjh88dWVwsXLtT333+vxx47+sHN4XBo3rx5+u6773TgwAHFxsZq4MCBuvzyyxUREVG1XZ8+ffTOO+9o1apVGjVqlD/K94pgeg0csXDhwhrLbrjhBt1www0+r6W+aXzerWo46HLJMGSLiFZEixSFxCb4u6yAV+GQftzn7A/+nOPsC8SESgObOPuDPRpKBv3BgFZYIc3bLc3aJe0qkCpNqWG4dG4L6dJkKSna3xUGtmB6L/z111/1r3/9S3v37q22PDExUe3bt1fbtm2rRmwVFRVp586d2rFjh3bu3CnTNFVRUaEffvhBq1ev1g033KB+/frpxRdfrAq5IiIi9MADD+iMM2r/PdYH9AdrCqbXwBH0B08sUPuDAf31anZ2tsaOHausrCxNnjxZjz32WNUZqM8++6zuv/9+hYSEyDAM9ejRw8/VIhDN3ik9t14qdVRfvqdIenOL9M6v0o0dpVs78cEmEFU4pBd+lj5Or768XNIvedLf10lTN0p/7SUNrzlTFAJAbpk0ZYW0+mD15QUVztBryQGpdbT0Yn8pOTAHSAS9X/KkyculrOLqy3N+Owni893SoKbSU32cX3gB7lq/fr1eeOEFlZSUVC1LTU3Vueeeq9TUVNlsthO2zc/P18KFC/X111/rwIEDqqys1PTp0/X1118rJydHkjVCrhN5//339eWXX6pfv34aPXq09uzZoy+//FLp6el66KGHqn43CQkJateunVauXBlQX2wAxwpv3lFxqRzfvrQ9X/rjMinjuBlkc8ukeXucP30aSc/0k+LD/FMjvGtBpvSXNc6w61j7iqVp25w/V7SVJnfjBDicnq+++krvvvuuTNOU5Bx5NWjQIJ177rlq3769jJN88bRv3z59++23WrBggQoKClRQUKBXX31VDRs2rOoPWiHkOhH6g8BRgdofDOiga+LEicrIyNDdd9+t559/vtq6KVOm6IMPPtDatWvVtm1bxcXF+alKBKqPd0jPrD/5NpWmM/AqrJD+2M03dcE3HKbzw8yXe06+XWGFMwh5uq90dgvf1AbfyC+Xbl3s/HLjZHYVSjf9KL09VEqO8U1t8I1f8qRbFktFFSff7qf90p1LpNcHSZEB3TODt6Slpen555+vGpXVuHFj3XbbberevXud2sfGxmrs2LE677zzNHPmTH366aeSFBAh1+7du/XVV1+pf//++uMf/1i1vGnTpnr33Xf1008/aciQIVXL+/btq08++UQlJSXVzu4FAHfsyJdu/lE6XPtlcaqsOijdvlh6c4hz1DcCx7d7pT+vlMxTbPfRDufnh8d7cRIs3DNnzhxNmzat6nb79u11xx13KCkpqU7tExMTNWHCBI0dO7aqjyQpIEIu+oNAcDjxqZ0Wt2nTJk2fPl2NGzfW008/Xes2ffr0kST17Nmz2vIdO3booosuUmxsrBo2bKjrrrtOBw8erG0XQK1+zXOO5KqrD7ZLCzO9Vw98b9bOU4dcRzgkPbJaOlByyk1hIc+uO3XIdUReuXT/Cuc0hwgMFQ7pvhWnDrmO2JgrvbzhlJsBNezYsUMvvvhiVcjVt29fPfvss3UOuY4VFhamq666SoMGDaq2vFmzZho2bJhH6vW1n376SaZp6oILLqi2fOTIkQoPD9ePP/5YbXnfvn1VXl6utLQ0H1YJIBA5TOn+lacOuY7Ymi8968JnSNR/+4qlR1efOuQ6Yl6GNHuXV0tCgFq8eHG1kOuiiy7S448/XueQ61hxcXG6/fbbq67XekTPnj0tGXJJ9AeBYBGwQdeHH34oh8OhCRMmKCam9lPkIyOdF0c6NujKz8/XiBEjlJGRoQ8//FBvvPGGFi1apDFjxsjhcNS6HysoqqxUdmlprT/wvI/SneGFS212eKMS+INpSv/b7lqbMoczHENgyC6Rvt576u2OtS1fWpntnXrgez/uc16X0RVzMpxn8sI7ArEvVFFRoddee01lZWWSpP79++sPf/iD2xcHN01T06ZNqzqD94jMzEzNmTPntOv1h23btskwDHXo0KHa8rCwMLVp00bbtm2rtrxVq1Zq1qyZVq5c6csyfSIQXwNAfbb8QN1Pejrimz3SQU5+Cxizdjo/57nif9s5+c2bAvG98NChQ3r77berbl9++eW6+uqrZbfb3dpfWVmZXnjhBe3aVT11XbZsmdavt2YaT3/wqEB8DQBHBOwEOfPnz5ekk06xkpGRIal60PXGG29oz549+uGHH6rOXkhKStKgQYP02Wefafz48d4r2ose/2WDHv+FU8V9oaDceSaWq5ZnS+kFTF0WCFYflHYUuN5u1k7nNdtCAvYUhOAxe5dzalJXfZwu9Wvi8XLgBzPSXW9TUil9sVv6XTuPlwMFZl9o5syZ2r17tySpTZs2uueee9z+UuNIyDV37lxJzukKx44dq88//1ymaeqjjz5S79691bJlS4/V7ws5OTmKi4tTaGjNucASEhK0ZcsWVVRUKCTk6MeiPn36aOHChaqsrHT791kfBeJrAKjPZqa73qbClD7dJd2Y4vFy4GMVbp7IuC1fSjsk9Wrk+ZoQeO+FpmnqzTffVFGR8wy7IUOG6JJLLnF7f0dCrrVr10pyTlc4YsQIzZs3T5L0+uuv67nnnqsaOGAV9AePCrTXAAKDaZpVf8eioqJOej3BkwnYoGvnTmePok2bNrWur6io0OLFiyVVD7q++OILDRkypNoQ3YEDB6pdu3b6/PPP3Qq6+vbtq6ysLJfaRNps2pg60OX7OpGbW7fTpS1a1brugqXfn/b+U1JSVGzhEW+eFNKquxr/eZ5bbUddfbtKVn/h4Yrga1EjblLc5X91ud2BEqldt95yHN7vhargS/G3vKGIXhe63O7rten64OIhp94Q9V6TZ9Jkj23scrsn3pyu+6ZN9kJF1mO1vpDk2f5QWFjYCafflqS8vDx99tlnkiS73a477rij1g/vdVFbyHXkmlwVFRWaO3euysvLNX369GrXNTheSkpK1egyTzjV76AuSktLq31pcawjv6/jt+nbt6/mzJmjTZs2qVs31y6i6snfQbC+BjpGROrrLr2rLXNn6qVAYIRFKvHlXz2yr9juw9XnU+8PE0lJ6SizrLjWdXF2u9b2HFBtWZ++fbW/3HN/N+qTxo//pJDGrU+94XFe+O/nevTtO7xQEXzJFt9cTZ9a4VbbKyc9oqKF//FwRdYUrO+FR5yqL7Rx40atWbNGkhQfH68bbrjB7S+Iawu5HnjgAaWkpGjnzp3auHGjsrOz9eWXX+riiy8+4X6CvT/o6ccfrK+BixOa6MXko2d9/PzzzxpLf/C01Yf+4MCYBvog5ehr6sCBA+rbsqUyM53X9ElNTa36u+aqgA26CgsLJUnFxbX/UqdPn67s7GzFxsaqbdu2Vcs3btyoyy+/vMb2Xbt21caNG92qJSsrS3v21PFiPb+JstulVLfurlYdYmJ0dpNEz+3wOHv37lVRZaXX9m8l0XHJcv2rTaecgmIdcvFYQf3TrLhMcW623XcoV2X7OAasLrJScueStQ57qMvvF6ifmoSEu9WupMLkGPiN1fpCkmf7Q+HhJz+GFixYoMrf7uv8889XcnKyW/dzspBLkq688kotXrxYeXl5WrlypQ4dOqSEhIRa97V3716VenDak1P9Duq6j8OHD9e6rry8vNb7sdmcQ6vdmbbck7+DYH0NNIiJk7pUXxasfxdt4VHy7jPmeXv37pWjtPa5ewtDQ6Xql8dWVmamMksDc66+RvYwt9qVVgbvMR9Iwh2Raupm28NFpdrHMSApeN8LjzhVX+jrr7+u+v/JLt1yKicKuY5ck+vmm2/W5MmTZZqmvvvuO40bN66qv3S8YO8PevrxB+trIMcIkZKP3i4vLw/a98ZA6w9mNyqXjhm5XllZWRVySdK+ffvcvt+ADbqaNWumnJwcrV69WgMHVk++MzMzdd9990mSevToUe1sh5ycHMXHx9fYX0JCgn755Re3a3FV5AneMOqrFi1aMKLrNyHR7n2gkaT4CLsiLTYlEGqKDHX/7IimcVEyQzgGrC7M4V7H1igtsNy0YDiB4sNSZKzLzSJUzjHwG6v1hSTP9ofCwk7cn3A4HPr2228lOYOp8847z637OFXIJTk/9I8cOVKzZs2Sw+HQ/Pnzddlll9W6vxYtWnj8DN7T1bBhQ2VkZKi8vLzGiLdDhw4pNja2xhm+K1euVFRUlLp0OS5tqQNP/g6C9TXQNKLmdEjB+nfRCLPW1FCS8xg42Yiu4zVr3ly2AB3RZZTmS3L9u4Bwsyxoj/lAYkS7c9qbU2yooRCOAUnB+154xMn6QocOHdKKFc5Rgw0aNKjx3WddnSrkkpyP6cgoi+zsbK1Zs0Z9+vSpdX/B3h/09OMP1tdAw4YNq90ODQ0N2vfGQOsPNo5pUO223W5X8+bNq8KuxET3Y72ADbpGjRqlTZs26ZlnntE555yjlBRnVLhixQpde+21ys7OluQcDudt7ly80CwpUcUV13uhGu/YsmWLjAj3O3KBxGFKF38n7ak9uD6hSLu08NN3FOPerEOoRzKLpHHfSq6+rfdMkN7e8rNXaoJvfbVHemiV6+1uOauT7s5w4yJ/qHeeWee85pqr3vjTtRry3LUer8eKrNYXkjzbH6qoqNDMmTNrXbd79+6qvmyPHj3UtKnr54zXJeQ6YtSoUZo9e7ZM09SaNWtOGHRt2bLlhNPCuONkv4O6at++vdatW6etW7eqc+fOVcvLysq0c+fOal/iHLFy5Uqlpqa69Vg8+TsI1teAuWu3Ku7+U7VlGUH63lhcIQ2d6+8qXLNly6+KPMFLwCwoUMXVN1VbtmrlShmNah8lanX/2CBN2+ZGu7su1agnL/V8QfC53y+S1ue41sZuSD+++4wSI5/xTlEWE6zvhUecrC+0bt26qtFGI0aMcKv/UZeQ64hRo0ZVTSd2sqAr2PuDnn78wfoacCz4QZUv/bPqdrdu3ZTx7ZzTLc2SAq0/6Fj7syofeaLqdpMmTfTrr79WjUj98ccf3b5f68XCdTRlyhQ1atRIu3fvVteuXdW9e3d17NhR/fv3V7t27TRy5EhJ1a/PJTkT49zc3Br7O9k0LcCxbIZ0WbLr7S5MEiFXgGgeJQ1x/eRNXZ7s8VLgJyObSwkunnhmSLok2RvVwB8uTXa9TcsoaaC7c9wgqGzfvr3q/65eQ0pyLeSSpEaNGql58+aSpF27dqmiosKNqv1j4MCBMgyj6iLqR8yfP1+lpaUaMqT6dRH37NmjzMxM9e3b15dlAghAlyY7+3euaBQuDXfjcwTqJ3e+FzgrUUq03sn78IMdO3ZU/d+d/qArIZfkvKTLkRmxju2LWgH9QSA4BGzQlZSUpEWLFmn06NGKiIhQenq6EhIS9Prrr2vOnDnasmWLpJpBV+fOnWu9FtfGjRurpf7AyVzU2rXOaVSIdHV779UD37uxoxTiwifbdrHOcASBIdQm3Zhy6u2ONba11CLKO/XA9zrESWe7+Jq+OcV5Fi9wKsd+sdGuXTuX2roach1x5Jq25eXl2r17t4sV+0/r1q117rnnavny5XrhhRc0f/58TZs2TdOmTVPnzp01ePDgatuvXLlSISEhPpn1AUBgS4qWRrdyrc2NKVJIwH5LE3xGtXB+zqurUJt0fUfv1YPAcmzYdKSfVleuhlxHtrHqiU/0B4HgELBTF0rO0OqLL76osbygoEDp6emy2Ww1znoYM2aMHnzwQWVkZCgpKUmStGzZMm3btk3PPfecT+qG9TUIk/5xpnTnT9KhU0zNG2GXnusntXHvmqGop7o1lB7vLT2yWqo8xSW7WkZJr5wphdW8bAEs7Mq20t4i6YM6nOw2qKn0QHfv1wTf+ksvKadMWn3w1NvekuIMO4G6ODJtoeTatYvcDbmOv5+DBw+6/IWKryQnJ9dYdv3116tJkyb67rvvtGbNGsXGxuq8887TFVdcUeNC6itXrlTXrl0VFcWZBwBO34M9pOwSaemBU297TXvpimSvlwQfCrc7vxe4/adTX9ogxJCe6O38HAnUxcGDzg8ZDRs2VHR0dJ3buRNyHdGyZUvt3btXFRUVysvLU6NGjdwr3svoDwLBKaCDrhPZsGGDTNNUSkpKjT9at956q6ZOnapx48bpr3/9q0pKSjRlyhT1799f48aN81PF7hvWuKnKxl5x0m1OtR7u6RAn/Weo9NIG6Yes2q/X1LexNKmL1Dne19XBF85tKSWES69ukn6uZW72UJs0qrn0h27O7RBYDEP6Q1dniP3ur1JmLdfhbBDqnNbm1k6cvRuIIkOkqQOkf22WZu2UCms56bFVtHRTijTGxTO+UXeB2BdKTU1Vw4YNVVZWpsjIug8h/+6779wKuSTnmcLDhg1TWFiYGjdu7FbdvpCcnFzjyw2bzaYxY8ZozJgxJ22bm5urrVu36ve//70XK/S9QHwNAFYRZpdePlN6/RdpZrp0uLzmNi2ipBs6SBe3cfYfEViaR0nvDHF+L/DtXqmilpMguzeU7urs/H4A3hGI74VDhw5Vfn6+S31BSXr//ffdCrkkqXv37oqOjlZYWJhCQ+vvtTfoD9YUiK8B4HhBGXStX79eUs1pCyUpLi5O8+fP16RJk3TVVVcpJCREY8aM0UsvvVQj4QdOpWW09Hx/KatY+mK39O/NR9d9PEJq68I0BrCmvo2ld4dKm3Klr/ccvSC1IWnOOQRcgc4wnEHW+DbSkv3ST/ulj36bccyQNOdc56hOBK5wu3RvV+m2TtKXe6Qn1x5d9+oAqX8T57UdAVece+65brUbOnSoli1bpp9//tmlkEuSevXqpV69erl1v1axcuVKSeJ6DAA8KsTmDDFuSnF+Hng87ei6l890Xp+TqYsDW6MI6W99nCfBzcmQXjnmahn/d5Z0RrzfSoOF/e53v3Or3SWXXKKff/5Zubm5LoVckvt9UCuhPwhYF0FXLdq3b1/rlIeAu5pFOq+98sZm58gumwi5gk3neOfPf7c5jwFDhFzBxG5IQxKdPzN2HD0GCLmCR2SI80ztp9cefR8Y0NTfVSHYhIeH609/+pM2bNig3r17+7ucemfEiBEaNmxYvT5DGYB1Rdid13L+W9rRvsCQRD8XBZ9qFCFd10F6dePRY4CQC76WkJCgRx99VNnZ2UpJcfHC0kGA/iBgXUE5ROlUQRcAAAAQiMLDwwm5TsBut/OlRoBITk5Wp06d9NZbb1Ute/vtt9WxY0e1b99et9xyi8rLnXPILVq0SKmpqTIMQ7m5uX6quH7IWTxD6f/4vbY+NV4/35GijZN6asuj56gkc6u/SwMAeFBCQgIh1wnQHwwc9Afdk7N4hnb+646q29nf/kerxhnKXTrbf0XVUVAGXfPnz5dpmho9erS/SwEAAAAAeNj06dN18803S5J27NihRx55RIsWLdLWrVu1b98+vfHGG5KcU3qmpaX5sdL6I3fpLMUPGK8m596qrq/9oi7/WKv4M8dp56s3+7s0AAAAl9EfdF3u0lmKP3O8JKl0X7qyv35T0Z0G+LeoOgrKoAsAAAAAYH1LlizRkCFD1LNnT/Xo0UOffvppjW1mzJihiy66SM2aNZNhGLr99tv14Ycf+qFa/6koyNW6G5OUdk0jbbw3VRvu6qzVl4Yrfarzyx+zolwFmxerQZ8L1aDvhTIM50WjolMGqGx/uh8rBwAAODn6g3VT1/5gXI+RMh0O7Xz1ZrW6daqMUGtceyUor9EFAAAAALC2Q4cOafz48ZoxY4aGDh0qh8NR63Qzu3btUps2bapuJycna9euXT6s1P9CYuKVcNbVskfGqvmVjyhv9VfKmvGUku9xTueTv36Bos8YJCOk+nRN+7/4h+L7j/NHyQAAAKdEf7DuXOkPZs16XjGdByu6Qx8/V113BF0AAAAAAMtZsmSJOnXqpKFDh0qSbDabEhIS/FyVf2yeMlAle3+tdV2Xl9YorEkrFe1IU9MxEyVJRdtWKapdr6ptcpfNVsMBF1drl/nxUyrN3Ko2T3znvcIBAABOA/3BozzVHyze+bNyl8xUp6d+8EndnkLQBQAAAAAIWK1bt9a2bduqbqenp6t169Z+rMjzznh2ySm3Kd6RVvVlRtG2VYrvf5EkyTRN5a35Si2vf7Zq26xZzyt3ySfq+Pi3soVHeadoAAAAH6E/6FSX/uChhdNUuj9dP9/RUZJUnpOlnbtvVXlOpppccIf3HsBp4hpdAAAAAADLGTRokH799VctWrRIkuRwOHTo0KEa21166aX67LPPlJWVJdM09e9//1tXXXWVr8v1q7KDeyQZCmvUUpJUnL5OkW26S5KKtixXZFJn2SNjJEn7Pn1ROYs+VMfHv1FITLyfKgYAADg1+oN1V9f+YJML7lDPdzPV/c10dX8zXdGdBqjNnW/U65BLIugCAAAAAFhQw4YNNWvWLD3wwAPq0aOHevfurcWLF9fYrl27dvrrX/+qwYMHq0OHDmrSpIluu+02P1TsP0Xb11SbmsYeHa/9c1+TJOUsnaX4M8dLksqyM5TxzmRVFOZqy8MjtPHeVG3605n+KBkAAOCU6A/WXV37g1bF1IUAAAAAAEsaMGBAjS8z7rnnnhrb3XLLLbrlllt8VVa9E99vjOL7jam63fmFFVX/z1vxuRL/tkCSFNY4SX0+NX1eHwAAgLvoD9ZNXfuDx+v05EJvl+YRjOgCAAAAAASMJk2a6JprrtFbb711ym0XLVqk1NRUJSYmymYLzo/HXV/doND4pv4uAwAAwGPoD7omEPqDjOgCAAAAAASMFStWnHqj3wwdOlRpaWneKwYAAAA+R38w+ARnRAkAAAAAAAAAAADLI+gCAAAAANQPtUwXY1ZU+KEQeFx5Lc+j3e77OgAAQP12fH+QvmDgOP659GBfkKkL66vwcIV89J6/q6i78HB/VwAAAAKJ1fpCkkf7Q3a7XZdeeqnH9vfc69OVX1io2Oho3XfblTVue4Ldw19Ye/p34Ase/R0E62sgOrrmsv3ZUotmp79vi4mwS4su9HcVrok4yUvAPJBdc2FtzzcAHBGs74W/oT9ovf6gpx9/0L4Gju8fHMyRWVkpIwhPkAm8/uCB6guiozx2vwRd9ZRhGFJEhL/LAAAA8Itg7wsZhqGQEM911U1JDtP5b0hISI3b9ZGnfwdWE7SvgbhYKTZWys+vWuRYulz2Sy7yY1H+YRhSZAC9BMwly6svSGwqIzSAHiAAjwva98Lf0B+kPxisrwEjqWX1BYWFMn/eKKNnd/8U5EeB3h+s8VyfBqYuBAAAAADUC4bdLmNgv2rLHDM/k7ljp58qgic4Nm+RY+7X1ZbZBg/wUzUAAKA+M5o1ldq3rbas8q33ZeYd9lNF8ATHd9/LTFtfbZkn+4MBlAcCAAAAAKzONnigKr+ef3RBfr4q/vCAjB7dZPToKsVEyzA4Z7O+Mx0OKb9AZto6mRs2SaZZbb1tyEA/VQYAAOo725CBcmzbcXTBzl2quPluGf16y0jpICMiwjncCfWaWVkhHcqVY8Uq6fgT18LCZPTtLTkqPXJfBF0AAAAAgHrD6NFVRpczZG7cfHShw+EMTNLW+a8weIzRt3eNM7UBAACOsI0cJse8b6T9x1zTqbRU5o9LZP64xH+FwWNs48fIiIyQCgs9sz+P7AUAAAAAAA8w7HbZH/uzjC5n+LsUeIHRt5fsD/zBed0RAACAWhgN4xXy5KNS0yb+LgVeYLt4rGwTrvDsPj26NwAAAAAATpMRGeEMu4YNkcLC/F0OPCEyQsa5I2V/4I8yeE4BAMApGIlNFfLkozJ6dpNsnCATEOIbyHbNVbLdMMHjJz0xdSEAAAAAoN4xIiMUMvkemcUlevXtj5VfWKSYygrdmZul1xokqsCwKcZ06M68ff4uFScSFSU1jJftzL4yevWUEU7ABQAA6s5IbKqQJx6RmZunqe/PUkFxiWIqK+kPWoVhSNHRMpo1lTGwv4wunWXYvTP2iqALAAAAAFBvGZERyjdsOixDahCvkAfvUsE//6vDBYVSTLRCHrrb3yUCAADAi4z4Biqwh+qwyqQGsfQHUQNTFwIAAAAAAAAAAMCSCLoAAAAAAAAAAABgSQRdAAAAAAAAAAAAsCSCLgAAAAAAAAAAAFgSQRcAAAAAAAAAAAAsiaALAAAAAAAAAAAAlkTQBQAAAAAAAAAAAEsi6AIAAAAAAAAAAIAlEXQBAAAAAAAAAADAkgi6AAAAAAAAAAAAYEkEXQAAAAAAAAAAALCkEH8XgNqZpqmi4gp/l1FnUZEhMgzD32UAAAAAAAAAAIAgQtBVTxUVVyhmwPv+LqPOCpZep+ioUH+XAQAAAAAAAAAAgghTFwIAAAAAAAAAAMCSCLoAAAAAAAAAAABgSQRdAAAAAAAAAAAAsCSCLgAAAAAAAAAAAFgSQRcAAAAAAAAAAAAsiaALAAAAAAAAAAAAlkTQBQAAAAAAAAAAAEsi6AIAAAAAAAAAAIAlEXQBAAAAAAAAAADAkgi6AAAAAAAAAAAAYEkEXQAAAAAAAAAAALAkgi4AAAAAAAAAAABYUlAEXdnZ2ZoyZYo6dOigiIgItWrVSpMmTVJhYaFuuukmGYahV1991d9lAgAAAAAAAAAAwAUBH3SlpaWpe/fueu6555SVlaUuXbqovLxcr7zyiq688kpt2rRJkpSamurfQr3kyYl9ZK67Sb8f37HW9QvevlAlK29Q1w4NfVxZcDlYIk3bKjl+u21Kyij0Z0XwtW2HpX9vrn4MHC7zZ0XwJdOUlh+Q/rGh+jFQ7jhZKwSS0kpp7u6jz79D0uqDzmMDAAAEvnKH9NWe6n2B5QfoCwSTw2XS/7ZXPwa25/uzIgAAAkeIvwvwpuzsbI0dO1ZZWVmaPHmyHnvsMcXGxkqSnn32Wd1///0KCQmRYRjq0aOHn6v1jr+8tkZjh7XWi386U18v2aM9+4qq1t17TVcN79dcD7y8Qhu25vixysC1r1j6x0Zp/l6p4pgPMKaki7+TBjaV7uksdWzgtxLhZWsPSf/c5PxC+1impAu+ls5Pku7pIsWH+aU8+MAXu6X//CrtLKi+3JQ05hvp8rbS7ztKdsMv5cHLyh3Sm79IM3dKeceF27cultrHSjenSOe09E99AADAuyoc0ru/Sh/tkA4d1xe4c4nUJka6saM0upV/6oP35ZZJr2yUvsqQSo870e2KBVKfRtJdnaUeCf6pDwCAQBDQI7omTpyojIwM3X333Xr++eerQi5JmjJlinr27KmKigolJycrLi7Oj5V6T3mFQ9c//IOiI0P19l+GVi1PSW6gJ+/pq6Xr9uu5d9f7scLAlV4g/X6R9PWe6iHXEaakn/ZLNy2uGYIgMCzMlG7/6cTPb6lD+nSXdNOP0oES39YG3/jnJukva2qGXEccLHWO9JuywvklCAJLaaV07zLpnV9rhlxHbMuX/rzK+QUYAAAILOUO6b4V0r9/qRlyHbGzQHpsjfSvzb6tDb6xv1i6cZH02a6aIdcRqw46Pzd+n+Xb2gAACCQBG3Rt2rRJ06dPV+PGjfX000/Xuk2fPn0kST179qxadiQY69+/v8LDw2UY1j/Ffs2mg3r67bU6b3CSbrm0k2w2Q+8/eZYMQ7r+4R/kcDBXgqfll0uTlkr76xBeFFVIk5czlWGg2ZQrPbiqblPT7SxwfhnONHaBZWa6cyRXXXyfJT3HOQcB54k0admBum376ibpywyvlgMAAHzs2fXSon112/btLdIn6V4tBz5W9ttJT7vq8Fm/zCH9eaW0Oc/7dQEAEIgCNuj68MMP5XA4NGHCBMXExNS6TWRkpKTqQdfWrVs1c+ZMNWvWTP369fNJrb7wxBtrlLb5oJ6f3F9T/zxQZ3ZvqoemrtKWdHpR3vD5LmlP0am3OyK/XPrvNu/VA99751fnh5W6+iXPOQIMgaHit+nqXDFrp5RV7J164Hs78qUv97jW5vVfJM49AQAgMOwtkmbvdK3Nm1sY5R9I5mdKWw7XffsyB6P8AQBwV8AGXfPnz5ckjRgx4oTbZGQ4T50+Nug666yzlJmZqc8++0yjRo3ybpE+VFFh6vqHf1BEuF13XtlZi1Zn6eX/+9nfZQUkhynNSHe93dwMqbDC4+XAD/YVSz+4Me3Ex+keLwV+sjBLyi51rY1DzrALgcGd94Hdhc6L0gMAAOubtdM5Xb0rDpS49zkC9ZM7/cEFmUxrDwCAOwI26Nq50/ltYZs2bWpdX1FRocWLF0uqHnTZbAH7K1FeQZlKyyolSXMX7ZbJWeNekV5Qt6kJjldYIa3M9nw98L0f90mVbry+Vh+UDp9g7n5Yy/dujs5bwKi+gOHuNRY4BgAACAzuztawkKArIOSWSmmHXG9XaTo/TwIAANeE+LsAbyksdCYNxcW1zwM1ffp0ZWdnKzY2Vm3btvVqLX379lVWlmu9VYdCpYSHPVrHfx4fqrBQuzZuy9HDt6bqo692aHtGvkf23TElRTaVe2RfVhfavp8aTZ7lVtub7/6Dipd+7OGK4GvR592l2HF/dqtt9/6DVZnNsB6ra3jn+wrvNtLldr/uzlJSUl8vVARfa/riZtkiap86+WT+75PP9M/Rd3qhIgS7i39/r6Jj4pSZlamkpKQat4H6jmMYVtPk6dWyN2jqcrtP5n2rdy66wfMFwafsTdqqyV8XudX2gb88pXu+ec3DFQG8l8L6OIYDk8NxdN7mIUOGaM2aNW7tJ2CDrmbNmiknJ0erV6/WwIEDq63LzMzUfffdJ0nq0aOHDMPwai1ZWVnas8fFC3UYYVKC52q45+ouGtG/hR58ZaU+XbBTq6eP1zuPD9XwG+d6ZP+Ze/dKJkNRJCkqspkaudn24L69ynH1WEG90zR7v2LdbJu5e4fKDzGkw+rC83MV7ka7iuJC198vUC81Ki12K+gqzD3EMQCvcFRWVv27Z8+eGreB+o5jGFbTsKRI9gautys+nMMxHQBCSw01cbNtTnaWDnAMwAt4L4XVcQwHvn373B/WHLBB16hRo7Rp0yY988wzOuecc5SSkiJJWrFiha699lplZzvniEtNTfV6Lc2aNXO5jUOh8tRX3R1ax+npSX21fP0BPfPOOjkcpv7yr9V6elI/3XN1F039YONp30fzFi0Y0fUbwyyUWVYsIyyyzm1M05RhGIot3qeoli29WB18ISzf+eZ65Hmtq8q8/WoaHSpFcgxYXcjBHW61M/dtUUv+BgQER+ZmqYHrX2+E5aRzDMArbHZ71b8tW7ascRuo7ziGYTVm1i9SYrLL7UIO0RcICDa7Kg8fkD2u7v3BI58fowv2KoxjAF7AeymsjmM4MDkcDmVmOpOQxMREt/cTsEHXlClT9MEHH2j37t3q2rWrzjjjDJWUlGjr1q264IILlJycrK+++qra9bm8ZeXKlS63KSwqV8yA90/7vg1DeveJs2S3Gbr+4e/lcDgvHPTsf9brkrOT9fSkvprzw+7TnsLw1y1bFB0Vetr1Boon0qRPd9V9e8Mw1LuR9MbKhd4qCT5kmtJlC6SdBa6NFr2tX1PdvotpCwPB/mJp7LeuX6vtrdsv0IBHM7xTFHzq273SAy6+/YfbpBVv/UUNwv7ilZoQ3J765391uKBQzZs1V0ZGRo3bQH3HMQyr+Wm/NHGpa23shvTj1PvUJOI+7xQFn/rnJuk/v9Z9e8Mw1DZGWjF/hrw88RCCFO+lsDqO4cBUWFiomBjnjDg//vij2/uxeaqg+iYpKUmLFi3S6NGjFRERofT0dCUkJOj111/XnDlztGXLFknySdDlT5Ov767BvRL16GurtXlHXtVyh8PUDY/8oBC7Te88PtSPFQamy9tKrvZLr/DupeLgQ4bh+vMZYkjj23inHvhe00hpZHPX2iTHSP3dnd8E9c7wZlJihGttzk+SGoR5px4AAOBbA5pIraNdazOyudTExf4D6q9L2zg/57niirYi5AIAwA0BG3RJUufOnfXFF18oPz9f+fn5WrZsmW699VYVFhYqPT1dNptN3bp183eZXnNG2wZ64q7eWrJ2v1547+ca6zduy9Vf/rVaw/o21z1Xd/FDhYHrjAbSvV3rvv3lydLZLn4pjvrtsmTXgo6/9JKa1X22S1jA/T2kNnW8RFNMiPRMX8nGh9qAEWKTnu0nRdrrtn1KnPQHF943AABA/WYznH2B6DrOo5McIz3Qw7s1wbeaRUmPptZ9+1EtpEuTvVUNAACBLWCnLjyZDRs2yDRNpaSkKCoqqsb6GTNmSJI2btxY7XZycrL69u3ru0JP0+YdeYrs995Jt/n72+v097fX+aii4DKhvRRqk178Wao4wfRlhqRrO0h3d+asrUBjN6Sn+khPrZM+O8k0luE2Z8h1DlMJB5z4MOmNQdLkFdLPOSferlmk9PKZUvs439UG3+jaUPr3IOmPy6WDpSferk8j5xdhMcwADABAQOkQJ705WPrDcmlf8Ym3695QeqE/I7sD0YWtJLtNenyNVOo48XbjWzuDTk58AwDAPUEZdK1fv17SiactvPzyy2u9ff311+vdd9/1am0ILFe0dY7U+nSX82dP0dF113WQLmkjJbk4nQWsI8TmPINvQjtpRrr0zV4pt+zo+j92lca0kuL4QBuwGkVI/xkirciWPk6Xlu6XiiuPrn+6jzS8uTMUR2Dq2lD6bJTzml0z06V1x4Se57Z0juhNTeBkBwAAAlVKA2n22dL8TGnGDmnNoaPrRjZ39gX6NqYvEMjOa+mcyvKL3dKsnVJ6wdF1V7Z1juJqF+u38gAACAgEXbUwzRMMvwHc0ChCujHF+dPvM8mUc87QicwWGTTaxzmnsbu/R/Vj4Or2/q4MvmAYzmtvHbn+1rHHACP5gkO4XRrdyvlz7PP/VB9/VwYAAHwh1OYMO85rKfX/THLI2Rd4tp+/K4OvNAhzzvoyoX31/uB93f1dGQAAgSEozyE/VdAFeAsn6YFjABwDwY3nHwAAILjRHwQAwPOCckTX/Pnz/V0CAAAAAAAAAAAATlNQjugCAAAAAAAAAACA9RF0AQAAAAAAAAAAwJIIugAAAAAAAAAAAGBJBF0AAAAAAAAAAACwJIIuAAAAAAAAAAAAWBJBFwAAAAAAAAAAACyJoAsAAAAAAAAAAACWRNAFAAAAAAAAAAAASyLoAgAAAAAAAAAAgCURdAEAAAAAAAAAAMCSCLoAAAAAAAAAAABgSQRdAAAAAAAAAAAAsKQQfxeA2kVFhqhg6XX+LqPOoiI5lAAAAAAAAAAAgG+RTtRThmEoOirU32UAAAAAAAAAAADUW0xdCNRTycnJ6tSpk1JTU9WlSxf985//POG2l19+uZYsWVKn/c6YMUN33HFHtWX/+c9/ZBiGZs+eXbVs6NCh2rFjh1u14/Tx/INjABwDAAAEN/oC4BgAAKBuCLqAemz69OlKS0vTvHnz9OCDD2rdunU1tlm+fLkOHTqkgQMH1mmfs2bN0vjx46tup6en680339SAAQOqbTd58mQ99thjp1U/Tg/PPzgGwDEAAEBwoy8AjgEAAE6NoAuwgDZt2qhTp07asmVLjXWvv/66rr76aklSbm6ukpKS1KhRI6Wmpqpz584KDw/XzTffLEkqLy/X4sWLNXLkSEmSw+HQzTffrKlTpyo8PLzafkePHq158+YpLy/Py48Op8LzD44BcAwAABDc6AuAYwAAgBMj6AIsYP369dq8ebN69uxZY93ChQt15plnSpLi4+N19dVX695771VaWppefvllDRgwQG+99ZYkacGCBRo0aJBCQ53Xf3vxxRc1ePBg9enTp8Z+Q0ND1b17dy1atMiLjwx1wfMPjgFwDAAAENzoC4BjAACAEwvxdwEATuzKK69UZGSkoqKi9M4776hjx441tsnIyFBiYmLV7bS0NE2cOFGStGrVKvXq1atq3ezZs3XxxRdLkn7++WfNnDlTP/zwwwnvv1mzZsrIyPDUw4GLeP7BMQCOAQAAght9AXAMAABwagRdQD02ffp0paamnnSbqKgolZSUVN1OS0ur6sSuWrVKF110kSTJNE199dVXevbZZyVJixYtUnp6elUnOSsrS7feeqsyMzOrLkpbUlKiyMhITz8s1BHPPzgGwDEAAEBwoy8AjgEAAE6NqQsBi+vRo4d++eUXSdKePXtkGIZatmwpSVq3bp26d+8uyXlx2s6dOysmJkaSdMcddygzM1Pp6elKT0/XgAED9MYbb1R1ZiVp06ZNtU6LgPqD5x8cA+AYAAAguNEXAMcAACDYEXQBFnfZZZfpq6++kiStWbOm2pQE8fHxeu211yRJs2bN0vjx4+u83/T0dFVWVtKhred4/sExAI4BAACCG30BcAwAAIKdYZqm6e8igGDR/zPJIWfCvPwiz+yzoKBAgwYN0pIlSxQdHX3C7bp27aoFCxaoadOmddrvAw88oA4dOujmm2/2TKGQ5PljgOffejgGghvvA/CXp/75Xx0uKFRcTLQevGtCjdtAfccxjEBBXwAcA/AX3kthdRzDgamwsLBqpHFBQcFJ38dOhhFdgMXFxMTopZde0o4dO0663YYNG+rcmZWkFi1a6MYbbzzd8uBlPP/gGADHAAAAwY2+ADgGAADBLsTfBQA4fWeffbbH9zlx4kSP7xPewfMPjgFwDAAAENzoC4BjAAAQzBjRBQAAAAAAAAAAAEsi6AIAAAAAAAAAAIAlEXQBAAAAAAAAAADAkgi6AAAAAAAAAAAAYEkEXQAAAAAAAAAAALAkgi4AAAAAAAAAAABYUoi/C0DtTNNUUXGFv8uos6jIEBmG4e8yAAAAAAAAAABAECHoqqeKiisUM+B9f5dRZwVLr1N0VKi/ywAAAAAAAAAAAEGEqQsBAAAAAAAAAABgSQRdAAAAAAAAAAAAsCSCLgAAAAAAAAAAAFgSQRcAAAAAAAAAAAAsiaALAAAAAAAAAAAAlkTQBQAAAAAAAAAAAEsi6AIAAAAAAAAAAIAlEXQBAAAAAAAAAADAkgi6AAAAAAAAAAAAYEkEXQAAAAAAAAAAALAkgi4AAAAAAAAAAABYEkEXAAAAAAAAAAAALImgCwAAAAAAAAAAAJYUFEFXdna2pkyZog4dOigiIkKtWrXSpEmTVFhYqJtuukmGYejVV1/1d5le8eTEPjLX3aTfj+9Y6/oFb1+okpU3qGuHhj6uLPgcKpXM3/5vnnRLBKq9RRwDwazSlHbkcwwEs5KK6s+/g4MAAICgUlJZvS9QSV8g6OSV8XkAAABvCPF3Ad6WlpamCy64QFlZWYqOjlaXLl20d+9evfLKK9q2bZsOHTokSUpNTfVvoV7yl9fWaOyw1nrxT2fq6yV7tGdfUdW6e6/pquH9muuBl1dow9YcP1YZuExTWnZAmpEu/ZBVvUN7+0/SZcnS8GZSSFBEzsGptFL6Zo/0cbq0IffoclPSw6ucx0BqI//UBt/IKZU+3SXNTJcyi48uNyW9vMF5DCRF+6k4+ER6vvN94PPd1d8HLp0vXZosXdRKigvzX30AAMC7dhfU3he4+DvpkjbS+NZSfLgfC4TXpR10fib8bm/1Y+CGRc7PA+e2kMLs/qsPAACrC+iv17OzszV27FhlZWVp8uTJyszM1OrVq5WVlaVnnnlGc+bM0YoVK2QYhnr06OHvcr2ivMKh6x/+QdGRoXr7L0OrlqckN9CT9/TV0nX79dy76/1YYeCqcEiPp0l3L5UWZkmO49avzJYeWClNWiYVlPujQnjbwRLplsXSX9Kqh1xHfLlHunmx9MpGRnYEqg050pULpFc3VQ+5jvi/bdIVC6Rv9/q+NvjG57ukKxdK/9shFVZUX7e70Bl2/m6htPWwP6oDAADe9vUe6YqF0n+3S4eP+9y3t8jZT7xiobQx1w/FwescpvSPDc7PfV/tkSqO+9z3c470lzXOz42HSv1TIwAAgSCgg66JEycqIyNDd999t55//nnFxsZWrZsyZYp69uypiooKJScnKy4uzo+VeteaTQf19Ntrdd7gJN1yaSfZbIbef/IsGYZ0/cM/yME37B5nmtLf1jrP2DuVZQekP62Qyo9PwmBpBeXSPUvr9oH1/a3SvzZ7vST42LbD0l1LpENlJ9+uzCE9uNI56hOB5csM6a9pp56WaF+JdMdPUkahT8oCAAA+sjBTemjVqT/rHSp19ht35PumLvjOq5ukadtOvd2GXOfnx6KKU24KAABqEbBB16ZNmzR9+nQ1btxYTz/9dK3b9OnTR5LUs2fPqmUzZszQpZdeqjZt2igqKkpnnHGGHnroIRUUFPikbm954o01Stt8UM9P7q+pfx6oM7s31UNTV2lLep6/SwtISw5IX9Qh5DpiZbb0yU7v1QPfe2+rtMWFERr/+VXawssxoPx9nVRQxw+qDjlHgJZVerMi+FJhhfTU2rpvn1MmPf+z9+oBAAC+VVopPbG27tdhyi+Xnl7n1ZLgY5vznCc11tUvLm4PAACOCtig68MPP5TD4dCECRMUExNT6zaRkZGSqgddzz//vOx2u5566inNmzdPd9xxh/71r3/p/PPPl8Nh3SE3FRWmrn/4B0WE23XnlZ21aHWWXv4/vlHzlo93uN5mZrpzJBisr6xS+tSN4HJGusdLgZ9sPSytOeRam9wy6btM79QD35u3WypyMbhcvE/aw6guAAACwjd7pbxTjOw/3uqD0nZGdQWMGW58LzBrJ7O9AADgjhB/F+At8+fPlySNGDHihNtkZGRIqh50ff7552rSpEnV7WHDhqlJkyaaMGGCfvzxR5111lleqtj78grKVFpWqbBQu+Yu2k2o4iXZJdKP+1xvtz1fWp8j9UjwfE3wrR/3nXq6utrMy5Amd5PCuQix5X26y712s3dKFyR5thb4hzvHgCnnlLe3n+HxcgAAgI995mZ/8NOd0h+6ebYW+F5JpfPznasOljpPfhre3PM1AQAQyAI26Nq50zmcok2bNrWur6io0OLFiyVVD7qODbmO6Nu3ryRpz549btXSt29fZWW5dvEVh0KlhIfdur8T+c/jQxUWatfGbTl6+NZUffTVDm3P8MzpYh1TUmRT+ak3DAKhyb3UaMrnbrW95Ma7VbJytmcLgs9FjbpNcZc84nK74kqpY2o/OXIY1mN18be9rYie57ncbvmW3Uq6cqAXKoKvNX3uZ9mi411uN3XaTP3tvUmeLwhB7+Lf36vomDhlZmUqKSmpxm2gvuMYhtU0eXK57A1buNzu7U/m6YXzb/FCRfAle0KSmvxtqVttb73/Lyqa/5aHKwJ4L4X1cQwHpmNn0RsyZIjWrFnj1n4CNugqLHTO/VNcXFzr+unTpys7O1uxsbFq27btSfe1YMECSVLnzp3dqiUrK8v1kMwIkzw4sueeq7toRP8WevCVlfp0wU6tnj5e7zw+VMNvnOuR/Wfu3SuZbgxhCUDRsa3VyM22OXl5OuRmoIr6IzG/QHFutt23/4DK9nMMWF1EWbki3GhXabp/UgXqlyYy3GpXXFLKMQCvcFRWVv27Z8+eGreB+o5jGFaTYEruTNRQUlrGMR0AwirDVfM06ro5nF+gfRwD8ALeS2F1HMOBb98+N6ZJ+03ABl3NmjVTTk6OVq9erYEDq58dn5mZqfvuu0+S1KNHDxnGib+M2rNnjx555BGdf/75Sk1NdbsWVzkUKk+N6ejQOk5PT+qr5esP6Jl31snhMPWXf63W05P66Z6ru2jqBxtP+z6at2jBiK7f2MOcc0KapnnSY6s2DWzlimzZ0htlwYciVOJWO7OyQk1jwmSGcgxYXVjpYfcaFhxUS/4GBAQz/4AU3cDlduHl+RwD8Aqb3V71b8uWLWvcBuo7jmFYjVGQLSW4PqIrrOwwx3QAMCJCZVZWyLC7/rVbjEoVwjEAL+C9FFbHMRyYHA6HMjOdSUhiYqLb+wnYoGvUqFHatGmTnnnmGZ1zzjlKSUmRJK1YsULXXnutsrOzJemk4VVBQYHGjRunsLAwvfPOO27XsnLlSpfbFBaVK2bA+27f5xGGIb37xFmy2wxd//D3cjicIcyz/1mvS85O1tOT+mrOD7tPewrDX7dsUXRU6GnXGyhuXCSty3Et5GoSIS395n8KsXmpKPhMQbl0wdfOqQhdMSopRM9s2+KdouBTq7Kl235yvd2DY1J11UQ3JvNHvfPWFunfm11vN+vx23TGK7d5viAEvaf++V8dLihU82bNlZGRUeM2UN9xDMNq/rtNemmD6+0+eOBapT53recLgs/dt1xa4NpVLBRll77/eKqiQ6Z6pygENd5LYXUcw4GpsLBQMTExkqQff/zR7f0E7FfqU6ZMUaNGjbR792517dpV3bt3V8eOHdW/f3+1a9dOI0eOlFT9+lzHKi4u1tixY7Vjxw59/fXXat7cmlcCnXx9dw3ulahHX1utzTvyqpY7HKZueOQHhdhteufxoX6sMDBdfvLZMGt1SRsRcgWImFDpAjemBnbnuEH91LuR1C7WtTYRdml0K+/UA98b31qyuzh7YfeG0hnxXikHAAD42NhWUriLn+86xEo9PXgJA/jXZW58vhvdSooO2FPSAQDwnoD9Wj0pKUmLFi3S6NGjFRERofT0dCUkJOj111/XnDlztGWLc9REbUFXeXm5LrvsMq1cuVLz5s1Tly5dfF2+R5zRtoGeuKu3lqzdrxfe+7nG+o3bcvWXf63WsL7Ndc/V1nyM9dWoFs4vuuuqdbR0BSFHQLkxRWocXvftRzaX+rh7cTfUO4Yh/bGra0HHXZ2lWAbGBozGEdItKXXfPswm3dvVe/UAAADfiguT7nDhMt92Q/pjN2c/EoGhf2NphAtXsmgSId3Q0Xv1AAAQyAL6PJHOnTvriy++qLG8oKBA6enpstls6tatW7V1DodDEyZM0Hfffae5c+eqf//+virX4zbvyFNkv/dOus3f316nv7+9zkcVBY9Qm/R8P+kPy6W1h06+beto6dWBUoMw39QG32gW6Xxe71kqHTjFJbuGJkqP9+ZDbaAZ0FT6W2/p0TVSuePk297WSfpdO9/UBd+5KUUqrJCmbTv5duE26e99OYMbAIBAM6GdVFguvXmK2clDbdITvaX+TXxTF3zDMJzP6wOrpB/3nXzbphHSKwOkxEjf1AYAQKAJ6KDrRDZs2CDTNJWSkqKoqKhq6+666y59/PHHeuCBBxQVFaWlS5dWrWvfvr2aNKHnibqJC5NeGyh9nC7NTJd2F1Zf3zhcuriNdFU7Qq5A1SFOev8s6YNt0me7pLzy49bHOqcrHNeaaSsD1TktpVYx0n+3St9m1gy8BjaRftdeGtTUP/XBuwxDmtTVGWD9b4e0Mrv6+nCbdG5LaUJ7598LAAAQWAxDuu0MqVtD6cPt0tID1deH2pyzgUxoL53RwD81wrsiQpwnwc7eJX28Q9p23OXRG4RKF7V2HgONI/xTIwAAgSAog67169dLqn3awnnz5kmS/v73v+vvf/97tXX/+c9/dMMNN3i9PgSOcLt0TXvp6nbSmoNSZpFUKeeUBP0bE24EgyYRzi+6bztDWn5AOlTqfN7bRDs/8DKKK/Cd0UB6oo/0h1JpVbZUUCFF2qWu8c4QDIFveHPnz4586Zc8qbjSOU1l38ZSPCc6AAAQ8AYnOn92FUgbc519gZgQqU9jKcGF6c5hTSE26bJk6dI20s850s5CqcLhfO77N3FeqxcAAJwegq7jpKen+7gaBAOb4fwQg+AVYZfOcmF+dgSehHDnCC8Er7axzh8AABCcWsc4fxCcDEPqnuD8AQAAnhWU40lOFnQBAAAAAAAAAADAGoJyRNf8+fP9XQIAAAAAAAAAAABOU1CO6AIAAAAAAAAAAID1EXQBAAAAAAAAAADAkgi6AAAAAAAAAAAAYEkEXQAAAAAAAAAAALAkgi4AAAAAAAAAAABYEkEXAAAAAAAAAAAALImgCwAAAAAAAAAAAJZE0AUAAAAAAAAAAABLIugCAAAAAAAAAACAJRF0AQAAAAAAAAAAwJIIugAAAAAAAAAAAGBJIf4uALWLigxRwdLr/F1GnUVFcigBAAAAAAAAAADfIp2opwzDUHRUqL/LAAAAAAAAAAAAqLeYuhAAAAAAAAAAAACWRNAFAAAAAAAAAAAASyLoAgAAAAAAAAAAgCURdAEAAAAAAAAAAMCSCLoAAAAAAAAAAABgSQRdAAAAAAAAAAAAsCSCLgAAAAAAAAAAAFgSQRcAAAAAAAAAAAAsiaALAAAAAAAAAAAAlkTQBQAAAAAAAAAAAEsi6AIAAAAAAAAAAIAlEXQBAAAAAAAAAADAkgi6AAAAAAAAAAAAYEkEXQAAAAAAAAAAALAkgi4AAAAAAAAAAABYEkEXAAAAAAAAAAAALImgCwAAAAAAAAAAAJZE0AUAAAAAAAAAAABLIugCAAAAAAAAAACAJRF0AQAAAAAAAAAAwJIIugAAAAAAAAAAAGBJBF31wLRp09SnTx81bNhQkZGR6ty5s1588UWZpunv0gAAAIBazZ07V6mpqQoPD1dycrJefPFFf5cEAAAAH/rhhx80btw4tWnTRoZh6G9/+5u/SwIQpEL8XQCkpk2b6pFHHlGnTp0UHh6uRYsW6c4775TdbtekSZP8XR4AAABQzcqVKzVu3Dj96U9/0ocffqhly5bp9ttvV1RUlG6//XZ/lwcAAAAfKCgoUJcuXXT11Vfr3nvv9Xc5AIIYQVc9cN5551W73a5dO82ePVsLFy4k6AIAAEC98+KLL6pfv356+umnJUmdO3fWhg0b9Pe//52gCwAAIEhceOGFuvDCCyVJ999/v5+rARDMmLqwnjFNU8uXL9fixYs1YsQIf5cDAAAA1LB48WKdf/751Zadf/752rlzpzIyMvxUFQAAAAAgGDGiq57Iy8tTy5YtVVZWJofDoccee0wTJ070d1kAAACwENM0tS87p8Zyh8NR9W/WgUM1bh8rMjxMDeJiTno/mZmZatasWbVlR25nZmYqKSnJ7ccAAAAA95WXV+hg7uEay13pD8bGRCk6MsL7xQKAhxB01ROxsbFKS0tTUVGRfvrpJ/35z39WixYtdNNNN/m7NAAAAFiEYRj6adXPWr52c63rC4qK9fI7M0542zAM3THholMGXQAAAKifbHabPvnyB+3au7/W9afqD0ZFhusPN17u9ToBwJOYurCesNls6tChg3r06KHbb79dU6ZM0UMPPeTvsgAAAGAxo0cOVKP4OLfajhiQqtYtE0+5XfPmzZWVlVVt2b59+6rWAQAAwD/sNpuuGD1CoaHujW+45LyzFBsT5eGqAMC7CLrqKYfDoZKSEn+XAQAAAIsJDwvVFWNGyDAMl9q1TGysswf3qdO2gwcP1ldffVVt2Zdffqk2bdowbSEAAICfNU5ooNEjBrjcrne3FHXr1NYLFQGAdzF1YT3w2GOPaejQoWrXrp3Ky8v1ww8/6JlnntHvf/97f5cGAAAAC2rTMlHDB6RqwZI1ddo+JMSuK8aMkN1et/Pg/vCHP2jQoEF66KGHdO2112rZsmWaOnWqXnrppdMpGwAAAB5yZmpnbdq6U79s312n7ePjYnTRqEEu3UdBQYG2bt0qSSorK1NWVpbS0tIUExOjDh06uFwzALiLEV31wOHDh3X77bera9euGjBggP7973/r6aef1osvvujv0gAAAGBRZw/urRaJjeq07fnD+iuxccM677tfv36aPXu2vvjiC/Xs2VOPPvqonnzySd1+++3ulgsAAAAPMgxDl14wTFGR4afeVtIVo4crIjzMpftYuXKlevXqpV69eikzM1P//Oc/1atXL918881uVg0A7mFEVz3w0ksvcfYrAAAAPCrEbteVY0Zq6rufqKKy8oTbdWjTUoP6dHN5/6NHj9bo0aNPp0QAAAB4UVxMlC4+b6j+O/vbk243pF8PtWvdwuX9Dx8+XKZpulseAHgMI7osJvtQnioqTvxFBQAAAHBEYuOGOn9Y/xOujwgP0+UXDpPNxet5AQAAwBq6d2qn3t06nnB9YuOGOvesvj6sCAA8jxFdFuJwOPTezC9VVl6h6y45Ty2bNfZ3SQAAAKjnBvXtpk3bdmrbzr011o0/d4gaxMX4oSrANXszdurH+fN0IDND//fPJ1VYUqE2HbtoyPBz/V0aAAD13kWjBmv7rkzlHi6ottxus+nKsSMVGsJXxKjfHA6Htm7+WT99/43yDh3QB/96WsXlpjp27aUzh4zwd3moB/grdpzKykp98MEHmjZtmtasWaPDhw8rMTFRXbp00WWXXabf//73stvtfqlt3ebtOnAoT1ER4WrUMM4vNQAAAMBabIahyy8crpffmaGS0rKq5T3OaKeendv7sTLg1DIyMjRhwgT98MMPVcuORLa7dvyqn777QgWZm/XCCy8oNDTUP0UCAFDPRYSH6fLRw/XWh1/o2IkGzxnaVy2a1u2aroC/rFixQtdcc422bNlStSxrj/Pf7Vs2auG8T9QopFATJ070U4WoD5i68BiHDx/WOeeco+uuu07ffPONwsLC1LNnTzkcDn399de65ZZblJ+f75faHA6Hvlu8SpI0tH8Ply8OCQAAgOAVHxejcecMrrodFxOl8ecOkcGUhajHdu/erUGDBlULuY5XWVmpqVOn6rLLLlNFRYUPqwMAwFrat26hwf26V91OTmqms/r38GNFwKn9+OOPGjZsWLWQ63ilJcWaNGmSHn30UR9WhvqGoOsYN910kxYsWKCkpCTNnz9fe/bs0fLly5WRkaHMzEw9+eSTfjtL8NjRXAN7d/VLDQAAALCu1C4d1L1TO0nSZRcMU1RkhJ8rAk7MNE2NHz9eu3fvrtP2n332mR5//HEvVwUAgLWdd1Y/JTZuqLCwUF0+erhsNr4aRv118OBBjRs3TsXFxXXa/oknntDs2bO9WxTqLcM0TfPUmwW+VatWqW/fvgoJCdGaNWvUrVs3j+176nufKL+gbi/I2pkqKCyWwzQVHhaq8DBGcwEAAMB1DtNUeXk5/UnUe9u3bNTbrzzlUpvIqBjd/7dXFMrxDQDACVVWVqrS4VAYU/6invvxu7maN+sDl9q0aZ+iW//AyC4rKSst0V8n3yxJeu71/+pPt17t1n64RtdvjqS9o0eP9mjIJUn5BcU6XFDokX2VlpWrtKzcI/sCAABAcKI/ifpu0fwvXW5TXFSg5T99r+59B3mhIgAAAsux124F6hvT4dCSH75xud3ObVu09ddf1LR5kheqgjeUlZVW/b/gNAYLEXT9ZuPGjZKkgQMHenzfsTGRp9Ga0VwAAAAAgsuenVvdardvT7oGDz/Hw9UAAADAlw7n5ij34AG32mZn7lKHjp08XBG8pazUXvX/mNPIUQi6fnP48GFJUoMGDTy+73uuv8Tttmkbt+p/n89XVES4ptz+O0WEE3QBAAAACGxPTrnVrXYdWjfTg3dN8HA1AAAA8KUtW7bomYfdazu4d2fdT3/QMgoLC6umLrxjwji390PQ9Zu4uDhJUl5enp8rOcrhcOi7xaskSUP79yDkAgAAABAU4uLiVFRU5HK72NhYL1QDAAAAXzryXb2v28L3oqKiVFBQUPV/dxF0/aZr16765JNPtGTJEo/ve+p7nyjfjfklyysqVFxSKkPST6s3aMnqjR6vDQAAAADqm8SkdsrKynK5XX5FuJ7653+9UBEAAAB8xTRNNWnWQgey9rrcdktmAf1Bi4qNiXR7djyCrt9cfPHFeuKJJzR37lxt3LhRXbp08di+8wuKdbig0O32pqT8AtfPZgQAAAAAK+rWd7DWrvzJpTZRMbFq1aHLaX32AgAAQP3Qs/9Z+vaz/7nUpk2HMxQe3YD+YBAi6PpNr169dMUVV+ijjz7SBRdcoPfff1/Dhg2rWr9v3z698847mjhxoqKjo13ad6wbF1E7djRXTEyUDBku7wMAAAAArKhz1x5q0y5FO7dvqXObISMvUMN4z19zGQAAAL43cOhILV04TwWH636poRHnXqS4GNe+u0f94U6OcoRhmqbpwVos7fDhwxo3bpwWLlwoSWrZsqVatGihzMxM7dmzR6ZpKicnR/Hx8V6tw+Fw6KW3P9aBQ3k676x+GjGwl1fvDwAAAADqm3379umss87Sli2nDruuueYavffee7LZbD6oDAAAAL6wevVqjRw5Unl5pw67nn/+eU2ePNkHVaE+4lPAMeLi4vTtt9/q7bff1vDhw1VUVKS1a9fKZrPpvPPO09tvv+2Tixuv27xdBw7lKSoiXAN7d/X6/QEAAABAfZOYmKjFixdr3LhxMozaZ7iIiYnRI488QsgFAAAQgHr37q3Fixerf//+J9ymWbNmeu+99wi5ghwjuuqhJas36Mvvl2v4gFRGcwEAAAAIetu3b9frr7+uVatWqaioSPHx8RozZoyuvfZan5yMCAAAAP9auXKl3nzzTW3ZskXl5eVq2rSpfve732n8+PEKDQ31d3nwM4KueqqwuEQhdrvCw3iRAgAAAAAAAAAA1IagCwAAAAAAAAAAAJbEJOYAAAAAAAAAAACwJIIuAAAAAAAAAAAAWBJBFwAAAAAAAAAAACyJoAsAAAAA4DOGYah79+6aO3euz+7zpZdeUocOHZSamuqz+wQAAEDt6A/C0wzTNE1/FwEAAAAACA6GYSgnJ0fx8fE+ub+KigqFhIRo4cKFuvfee5WWluaT+wUAAEDt6A/C0xjRBQAAAADwm/Lycj3wwAPq37+/UlNTdcUVVygnJ0cHDhxQcnKyli5dKkmaMWOGevbsqeLiYi1cuFDdunXTddddp27duqlPnz5VX1gsXLhQXbt21U033aTU1FTNmjXLj48OAAAAp0J/EKeLoAsAAAAA4DfPPfecoqOjtXz5cqWlpal79+56+OGH1aRJE02bNk0TJkzQ8uXLde+99+rjjz9WZGSkJGnDhg26/vrr9fPPP+v+++/XVVddpSMTlmzatEnXXXed0tLSdPnll/vz4QEAAOAU6A/idIX4uwAAAAAAQPCaPXu28vLyNHPmTElSWVmZkpOTJUlDhw7VTTfdpEGDBun9999XSkpKVbvk5GSdffbZkqQrrrhCt956q3bv3i1JateunYYNG+bbBwIAAAC30B/E6SLoAgAAAAD4jWmamjp1qs4999xa169Zs0ZNmjSp+tLiRAzDkGEYkqSYmBiP1wkAAADvoD+I08XUhQAAAAAAvxk/frxeeuklFRUVSZKKioq0YcMGSdKrr76qnJwcrV27Vq+//roWL15c1S49PV0LFiyQ5LxeQ2JiopKSknz/AAAAAHBa6A/idDGiCwAAAADgN/fff79KS0t15plnVp2Be2TZ888/r2XLlqlp06b6v//7P11zzTVasWKFJKlr16569913NXHiRIWFhenDDz+sag8AAADroD+I02WYR67OBgAAAACAlxmGoZycHMXHx7u9j4ULF+ree+9VWlqaV9sAAADA8+gPwtOYuhAAAAAA4DOJiYkaNmyY5s6d67P7fOmll3TnnXeqcePGPrtPAAAA1I7+IDyNEV0AAAAAAAAAAACwJEZ0AQAAAAAAAAAAwJIIugAAAAAAAAAAAGBJBF0AAAAAAAAAAACwJIIuAAAAAAAAAAAAWBJBFwAAAAAAAAAAACyJoAsAAAAAAAAAAACWRNAFAAAAAAAAAAAASyLoAgAAAAAAAAAAgCURdAEAAAAAAAAAAMCSCLoAAAAAAAAAAABgSQRdAAAAAAAAAAAAsCSCLgAAAAAAAAAAAFgSQRcAAAAAAAAAAAAsiaALAAAAAAAAAAAAlkTQBQAAAAAAAAAAAEsi6AIAAAAAAAAAAIAlEXQBAAAAAAAAAADAkgi6AAAAAAAAAAAAYEkEXQAAAAAAAAAAALAkgi4AAAAAAAAAAABYEkEXAAAAAAAAAAAALImgCwAAAAAAAAAAAJZE0AUAAAAAAAAAAABLIugCAAAAAAAAAACAJRF0AQAAAAAAAAAAwJIIugAAAAAAAAAAAGBJBF0AAAAAAAAAAACwJIIuAAAAAAAAAAAAWBJBFwAAAAAAAAAAACyJoAsAAAAAAAAAAACWRNAFAAAAAAAAAAAASyLoAgAAAAAAAAAAgCURdAEAAAAAAAAAAMCSCLoAAAAAAAAAAABgSQRdAAAAAAAAAAAAsCSCLgAAAAAAAAAAAFgSQRcAAAAAAAAAAAAsiaALAAAAAAAAAAAAlkTQBQAAAAAAAAAAAEsi6AIAAAAAAAAAAIAlEXQBAAAAAAAAAADAkgi6AAAAAAAAAAAAYEkEXQAAAAAAAAAAALAkgi4AAAAAAAAAAABYEkEXAAAAAAAAAAAALImgCwAAAAAAAAAAAJZE0AUAAAAAAAAAAABLIugCAAAAAAAAAACAJRF0AQAAAAAAAAAAwJIIugAAAAAAAAAAAGBJBF0AAAAAAAAAAACwJIIuAAAAAAAAAAAAWBJBFwAAAAAAAAAAACyJoAsAAAAAAAAAAACWRNAFAAAAAAAAAAAASyLoAgAAAAAAAAAAgCURdAEAAAAAAAAAAMCSCLoAAAAAAAAAAABgSQRdAAAAAAAAAAAAsCSCLgAAAAAAAAAAAFgSQRcAAAAAAAAAAAAsiaALAAAAAAAAAAAAlkTQBQAAAAAAAAAAAEsi6AIAAAAAAAAAAIAlEXQBAAAAAAAAAADAkgi6AAAAAAAAAAAAYEkEXQAAAAAAAAAAALAkgi4AAAAAAAAAAABYEkEXAAAAAAAAAAAALImgCwAAAAAAAAAAAJZE0AUAAAAAAAAAAABLIugCAAAAAAAAAACAJRF0AQAAAAAAAAAAwJIIugAAAAAAAAAAAGBJBF0AAAAAAAAAAACwpBB/FxBoHFu2SqYpIyxUio2VGiXIMIzT3q+ZXyDl5MosLvZAlfAFIzJCim8gIy7O36UAAAAAAAAAABCQDNM0TX8XEUjKL79OKi09uqB5M9kGD5BtyEAZ7ZJd2pd58JAci5fKXLxU5qZfPFsofMbo1FHG4AGyDR4go0ljf5cDAAAAAAAAAEDAIOjysBpB1zFs114l++UX12k/jp83qvLxv0slte8LFhQWKvtDU2Tr1cPflQAAAAAAAAAAEBC4RpcPOab9T5Ufzzr1doRcgamsXJVPPivHmnX+rgQAAAAAAAAAgIDAiC4PK7/2ZqmkTCork07wq7U/9oBsfXrVus4sKFTFjXecOOQKC5Nsp3/NL3iZw3QeA7UJC1XIW/+UEd/AtzUBAAAAAAAAABBgQvxdQKAJnfaWJMmsdMjcvkPm/O/lmPNVtW0cC388cdC1fGWNkMvo2U22iy6U0aO7jPAw7xQOjzPLy2Wu+1mOz7+UuTrt6IqycjmWLpf9/HP8VhsAAAAAAAAAAIGAqQu9xLDbZOvYXvbbbpTtykurrTOXr5J5gtE+jsVLq++ncyfZH/2zbP36EHJZjBEaKlufXrI/MkVGz27V1pnHPc8AAAAAAAAAAMB1jOjyAdsF58jx0SdHpzIsLpa5aUvN8KPSIfO46zfZzh8lIzT4nibTlEoq/V2FayLsklHLrJKG3S7b+eeocu3PVcvM9RtklpYRXuKETNOUSi12nb7wcBm1vQjcYJqmKiut9UfAbrd77PEDAAAAAAAAqJvgS1D8wEhoKLVsLmXsPbowL6/mhkVFUkVF9bbduni5uvqppFIaOtffVbhm0YVS5AleUUb3455HhykVFEjhCd4vDNZUWqqKK673dxUuCfnoPSkiwiP7qqys1MyZMz2yL1+59NJLFRLC2yoAAAAAAADgS0xd6CNGVFT1BcUlNTcqqWXZ8e3ctGDBAg0YMECxsbEyDEPvvvuuR/aLOqrteSwu9n0dAAAAAAAAAAAEEE499xWbm5mii9NgDR8+XCtXrlRBQUHVspycHF1yySVKSkrSCy+8oKioKA0aNMi9euAeg0wZAAAAAAAAAABPI+gKAitWrFBubq7efvttXXLJJf4uBwAAAAAAAAAAwCMYZhIEsrKyJEkJCVwPCgAAAAAAAAAABA5GdAW45ORk7dy5U5I0YsSIquWmafqrJAAAAAAAAAAAAI8g6ApwL7/8subNm6c33nhDDz74oDp37uzvkgAAAAAAAAAAADyCoCvAjR8/Xrm5uXrjjTd0zjnnaPjw4f4uCQAAAAAAAAAAwCMIuhDw8tcv1JaHR1RbZouIVkTLTkoYcZ2aXni3DLvdP8UBAAAAAAAAAAC3EXQhaDQ863dq0OdCyTRVfmivDs5/Vxlv3auSXRvU5q43/F0eAAAAAAAAAABwEUEXgkZUu95qNPyaqttNLrhDG+7qrOxv3lKLCU8oND7Rj9UBAAAAAAAAAABX2fxdAOAv9qg4RXcaKJmmSrO2+7scAPWcaZpyOBz+LgMAAAAAAADAMRjRhaBlmqZKs7ZKkkLiGvu5GgDeUlpaqp07d2rHjh06fPiwKioqFBoaqkaNGqldu3Zq2bKlQkJO/nZomqamTZumvLw83XnnnbJzXT8AAAAAAACgXiDoQtBwlBap4nC2TNNUeU6mDnwxVcU71iq60wBFtOjo7/IAeFB5ebmWLVumb775Rr/++utJR2KFhoaqZ8+eOuecc9S9e3fZbNUHOx8JuebOnStJMgxDd911lwzD8OpjAAAAAAAAAHBqQTF1YXZ2tqZMmaIOHTooIiJCrVq10qRJk1RYWKibbrpJhmHo1Vdf9XeZ8LLMDx/T2mubaN11TbVpUk9lf/eOGvS/SO0fnO3v0oJGaaWUWyaVM/ubz3yfvV9hn3+kF7dtPuE2YZ9/pPHLFvmwKu9xOByaO3eu7rrrLr366qv65ZdfTjndYHl5uVauXKmnn35af/zjH7VixYqqdbWFXF27diXkAgAAAAAAAOqJgB/RlZaWpgsuuEBZWVmKjo5Wly5dtHfvXr3yyivatm2bDh06JElKTU31b6EesnDhwhrLbrjhBt1www0+r6W+aXzerWo46HLJMGSLiFZEixSFxCb4u6yAV1IhfbVXmrFD2pR3dHmvBOmyttLI5lJoUETu8La9e/fq9ddf1y+//FJtefPmzdWpUye1a9dOTZs2ld1uV1lZmfbu3avt27dr8+bNysnJkSRlZWXphRde0ODBg3X99ddr9uzZ1UKuW2+9VSNGjPD5YwMAAAAAAABQu4AOurKzszV27FhlZWVp8uTJeuyxxxQbGytJevbZZ3X//fcrJCREhmGoR48efq4W3hbevKPiUkf5u4ygsjlXuneZlF1ac92aQ86f1tHSP86UWsX4vDwEkHXr1umFF15QaenRg23gwIE699xzdcYZZ9Q6AqtPnz6SpMrKSq1atUrz5s3Tpk2bJEmLFy/WqlWrVFJSIomQCwAAAAAAAKivAjromjhxojIyMnT33Xfr+eefr7ZuypQp+uCDD7R27Vq1bdtWcXFxfqoSCEy/5km3/SQVVpx8u12F0s2LpXeHSs2jfFMbAsvatWv13HPPqaLCebAlJibq9ttvV+fOnevU3m63q3///urXr58WLVqkd999V0VFRYRcAAAAAAAAgAUE7IRhmzZt0vTp09W4cWM9/fTTtW5z5Gz+nj17Vlu+Y8cOXXTRRYqNjVXDhg113XXX6eDBg16vGQgUpik9tPrUIdcRB0ulx9O8WlLQK6qsVHZpaa0/VrZ792698MILVSFXv3799Mwzz9Q55DqWYRgaOnSoBgwYUG15dHS0zjzzTI/UCwAAAAAAAMCzAnZE14cffiiHw6EJEyYoJqb2OdEiIyMlVQ+68vPzNWLECCUkJOjDDz9UcXGxpkyZojFjxmjx4sWy2QI2GwQ8ZtVBaXu+a21WZEs78qW2sd6pKdg9/ssGPf7LBn+X4VEVFRX617/+pbKyMklS//79NWnSJNntdrf2Z5qmpk2bpvnz51dbXlBQoPfff1+33377adcMAAAAAAAAwLMCNug68kXlyaaaysjIkFQ96HrjjTe0Z88e/fDDD2rdurUkKSkpSYMGDdJnn32m8ePH17kG0zRVVFQkSQozTVcfAmBZM9Pda/fJTmlyN4+Wgt/c3LqdLm3RqtZ1Fyz93sfVeMbnn3+u7du3S5Jatmypu++++7RDrrlz50pyju66+uqr9cknn6i4uFgLFy7UmWeeqV69enmsfgAAAAAAAACnL2CDrp07d0qS2rRpU+v6iooKLV68WFL1oOuLL77QkCFDqkIuSRo4cKDatWunzz//3KWgq6ioqGo02ZIR56tPzNHrgE2ZMkX/u2lfte1bhIZpcfd+1ZadccYZKnRU1vk+A4URFqnEl3/1yL5iuw9Xn0+9HzSmpHSUWVZc6zqbpG29B1dbNmzYcG0vrX17q2v00LcKbXmGy+3enfO9Xjp/ghcqsp5Im00bUwd6bH8dYmJ0dpNEj+2vNikpKSp2ODyyr7CwsBNOOys5/77Onj1bkjOUuuOOOxQWFubWfdUWch25JldUVJTefPNNSdL06dOVmpoqwzBq3U9KSkrV6DIAAAAAAAAAddesWTOtXLnSrbYBG3QVFhZKkoqLaw8Spk+fruzsbMXGxqpt27ZVyzdu3KjLL7+8xvZdu3bVxo0b3a7n+C8/c3JztWfPnmrLbJFRUvfq7fbu3auCyjpe6CiA2MKj5N2v5D1v7969cpQW1brOJkPqXX3Z/v37tKfAxfn9LCJeNoW60a6sUjVeF8Eqym6XUv1dhWv27t2rokrPBPPh4eEnXb9o0SKV/nZ9sREjRqhDhw5u3c/JQi5JGjlypL777jtt375d6enp2rp1qzp27Fjrvvbu3VtVEwAAAAAAAADfCNigq1mzZsrJydHq1as1cGD1URGZmZm67777JEk9evSodnZ+Tk6O4uPja+wvISFBv/zyi9v1HD/SoGF8vFpWtqxec2jN0QgtWrQI2hFdVtOiRYuTjug6XtOmiSpoEFfLGuuzlR52q11oeaFatmx56g2DQKQFrwfYokULj47oOhHTNPXNN99U3T7vvPPcuo9ThVxHlp177rn697//LUn6+uuvTxh0tWjRghFdAAAAAAAAgBuaNWvmdtuADbpGjRqlTZs26ZlnntE555yjlJQUSdKKFSt07bXXKjs7W5KUmprqk3p69eol/bqt6vazzz6r5887u9o25oFsVdx0V7VlmzdvlhFlvdDndBVXSEPn+rsK12zZ8qsiT/CKMisdqrj4d9WWff/9QhlJgRnq/N826eUNrrd7/qYLdf5jGZ4vyILMkhJVXHG9v8twyZYtW2RERHhkXxUVFZo5c2at63JycqqusdixY8cTTlF7MnUJuY4YNGiQ3nvvPRUXF2vdunUyTbPW6Qu3bNmikJCAfVsFAAAAAAAA6iXrDRmooylTpqhRo0bavXu3unbtqu7du6tjx47q37+/2rVrp5EjR0qqfn0uSWrYsKFyc3Nr7O/QoUNKSEjwRemA5Y1tJYW7+NclIUwa2dw79SCwbN++ver/nTt3drm9KyGX5BxddmRqxLy8POXk5LhRNQAAAAAAAABvCNigKykpSYsWLdLo0aMVERGh9PR0JSQk6PXXX9ecOXO0ZcsWSTWDrs6dO9d6La6NGze69YUqEIwahEnXuXjJpNvOkMLs3qkHgWXHjh1V/2/Xrp1LbV0NuY449lqOxwZtAAAAAAAAAPwroOdY6ty5s7744osaywsKCpSeni6bzaZu3bpVWzdmzBg9+OCDysjIUFJSkiRp2bJl2rZtm5577jmf1A0Egls7Sdml0qydp972lhTp0mSvlxSUhjVuqrKxV5x0m1Otr2+OHVHVvHndhwG6G3JJzutv1Xb/AAAAAAAAAPwroIOuE9mwYYNM01RKSoqioqKqrbv11ls1depUjRs3Tn/9619VUlKiKVOmqH///ho3bpyfKgasxzCkB3tIXeKl/26T0gtqbtOpgXRDB+mcwLxUGbykT58+atiwocrLyxUfH1/nditXrnQr5JKkNm3aaNy4cQoLC3N5FBkAAAAAAAAA7wnKoGv9+vWSak5bKElxcXGaP3++Jk2apKuuukohISEaM2aMXnrpJdlsATvTI+AVhiFd3EYa31pamS3duUQyJRmS/jNU6hrv3AZwRZ8+fdSnTx+X2/Xt21fnn3++vvrqK5dCLsk5deGx0xcCAAAAAAAAqB8IumrRvn37Wqc8RODKWTxDeSvnqKIwRyW7N8oWFqmQBk3V+o5/KaK5ixebQg2GIfVr4gy4jgRd3Rr6uSgEHcMwdP3112vQoEFKSUnxdzkAAAAAAAAAPCAohyidKuiysuTkZHXq1ElvvfWWJCk9PV3Dhw9XgwYNlJqaWm3bRYsWKTU1VYZhKDc31/fF1iO5S2cpfsB4NTn3VnV97Rd1+cdaxZ85TjtfvdnfpQHwIMMwCLkAAAAAAACAABKUI7rmz5/v7xK8avr06VWhVlxcnP72t78pLy9PDz30ULXthg4dqrS0NBkBPndcRUGuNk7sJkdZscIat5JZXqrSrO1KGH6tku95S2ZFuQo2L1bypHdlhIRWtYtOGaB9s5/3Y+UAAAAAAAAAAOBkgnJEV6BYsmSJhgwZop49e6pHjx769NNPa2yTkJCgIUOGKDo62g8V1g8hMfFKOOtqJY69V11eTlPSTS8rutMAJd/jHPWWv36Bos8YVC3kkqT9X/xD8f3H+aNkAAAAAAAAAABQB0E5oisQHDp0SOPHj9eMGTM0dOhQORyOoJ1+cPOUgSrZ+2ut67q8tEZhTVqpaEeamo6ZKEkq2rZKUe16VW2Tu2y2Gg64uFq7zI+fUmnmVrV54jvvFQ4AAAAAAAAAAE4LQZdFLVmyRJ06ddLQoUMlSTabTQkJCX6uyj/OeHbJKbcp3pFWFW4VbVul+P4XSZJM01Temq/U8vpnq7bNmvW8cpd8oo6PfytbeJR3igYAAAAAAAAAAKeNqQsR8MoO7pFkKKxRS0lScfo6RbbpLkkq2rJckUmdZY+MkSTt+/RF5Sz6UB0f/0YhMfF+qhgAAAAAAAAAANQFQZdFDRo0SL/++qsWLVokSXI4HDp06JCfq6qfiravqTZVoT06XvvnviZJylk6S/FnjpcklWVnKOOdyaoozNWWh0do472p2vSnM/1RMgAAAAAAAAAAqAOmLrSohg0batasWZo8ebLy8/Nls9n0xBNP1NiuqKhIKSkpKi0tVV5enpKSknTttdfq6aef9kPV/hHfb4zi+42put35hRVV/89b8bkS/7ZAkhTWOEl9PjV9Xh8AAAAAAAAAAHAPQZeFDRgwQIsXL6627J577ql2OyoqShkZGb4sy1K6vrrB3yUAAAAAAAAAAAA3MXVhgGnSpImuueYavfXWW6fcdtGiRUpNTVViYqJsNg4FAAAAAAAAAABgLYzoCjArVqw49Ua/GTp0qNLS0rxXDAAAAAAAAAAAgBcxjAcAAAAAAAAAAACWRNDlK+Xl1W+H2GtuY69lWUV5zWWwnvKymstqe74BAAAAAAAAAECdMXWhD9gNQ8aBg9UXRkfX3LCWZebeLBlxcV6qrP6KsEuLLvR3Fa6JOFlulZlVc1lMjNdqQQAID1fIR+/5uwrXhId7bFd2u12XXnqpx/b33OvTlV9YqNjoaN1325U1bnuCnfAaAAAAAAAA8DmCLh8Y3qipjMLCasuM5DY1tjPCw6QWzaW9mVXLzJ+WSWekeL3G+sYwpMgAOjodPy2vvqBxIymmlrAT+I1hGFJEhL/L8BvDMBQS4rk/AqYkh+n8NyQkpMZtAAAAAAAAANbE1IVe1iYySlN79K62zOjQTkazprVubxs8oNptx5yv5FixSqZpeq1GeJcjbZ0cs7+otsw2eIAzyAAAAAAAAAAAAG7jNHYPq/x4llRRIZWUKuSXX/XL2aNlOy7QMI4Ls45lGzxAjo9nHV1QXq7KJ56VklrI1rO7FBsj2cgn6z2HKRUWyrF2vbQro8bqkx0DAAAAAAAAAACgbgi6PMzx0SyptFTSb8Pljh+1k9RCtlEjTryDtm1kDBsi8/sfqy/P2CtHxl6P1gr/MAb2l5HSwd9lAAAAAAAAAABgeQwN8qWkFgp58jEZDeJOuIlhGLLfe5eMYYN9WBh8xRjYX/b7JslgVB4AAAAAAAAAAKeNEV0+kF9Rrqizhij8thtlNIw/5faG3Sb7vXfLkdhUjvk/SNkHvV8kvCuhoWzDhsh27VUyQnjZAQAAAAAAAADgCXzj7mHGmX2k8gopPFwVEeG68om/6Ov9+5T98TQZ0dF134/dJvs1V8l29RV69Y3/KT+/UDGmQ3c6CvWaIlUgQzEydadZ5MVHg9MSFSkjPl5Gv94yzkhhFBcAAAAAAAAAAB5G0OVhIX+aVPX/0sJCfXbXrae1P8NmU36lqcMOU4qJUchdt6ngn//V4YJCKSZaIXfdcbolAwAAAAAAAAAAWBJDTAAAAAAAAAAAAGBJBF0AAAAAAAAAAACwJIIuAAAAAAAAAAAAWBJBFwAAAAAAAAAAACyJoAsAAAAAAAAAAACWRNAFAAAAAAAAAAAASyLoAgAAAAAAAAAAgCURdAEAAAAAAAAAAMCSCLoAAAAAAAAAAABgSQRdAAAAAAAAAAAAsCSCLgAAAAAAAAAAAFgSQRcAAAAAAAAAAAAsiaALAAAAAAAAAAAAlkTQBQAAAAAAAAAAAEsi6AIAAAAAAAAAAIAlEXQBAAAAAAAAAADAkgi6AAAAAAAAAAAAYEkEXQAAAAAAAAAAALAkgi4AAAAAAAAAAABYEkEXAAAAAAAAAAAALImgCwAAAAAAAAAAAJZE0AUAAAAAAAAAAABLIugCAAAAAAAAAACAJRF0AQAAAAAAAAAAwJIIugAAAAAAAAAAAGBJQRF0ZWdna8qUKerQoYMiIiLUqlUrTZo0SYWFhbrppptkGIZeffVVf5cJAAAAAAAAAAAAF4T4uwBvS0tL0wUXXKCsrCxFR0erS5cu2rt3r1555RVt27ZNhw4dkiSlpqb6t1AggBWUS3MzJMdvtx2SPtslndtCigj4v0IAAAAAAAAAAG8J6BFd2dnZGjt2rLKysjR58mRlZmZq9erVysrK0jPPPKM5/9/evUdpWRZqA79ezocBSTkJqEiCghymQBOTyEOGWyzcqfVF5Vb7LMuP2KslurOyvStPsaOD5aat5tLabkqT7QG0A1BEFoiOB8TUZIwZB4tCiFMC835/VGwJqJmRYeYZfr+1WC/Pe9/381wva3xdi4v7ee6/P8uWLUupVMro0aNbOi60Oa/sSP79yeSM7yfXP7Hr2L9VJf/wg+Qbv0zqyy0SDwAAAACAgmvTRde0adNSU1OTSy+9NDNnzkyPHj12js2YMSNjxozJ9u3bM3jw4PTs2bMFk0Lb88cdyfRfJHc8n2zZsec5G7b9qei6cnmyQ9kFAAAAAEAjtdmia+XKlZkzZ0569+6da665Zo9zxo4dmyQZM2bMzvf+Uowdf/zx6dy5c0ql0n7JC23NdU8kS9c2bO4PXkxmP928eQAAAAAAaHvabNF1xx13pL6+PlOnTk1FRcUe53Tt2jXJrkXXc889l7vuuiv9+/fPcccdt1+yQluzZkty368bt+a/n//Ts7wAAAAAAKCh2mzRtWDBgiTJySefvNc5NTU1SXYtut7ylrekrq4u99xzT0477bTmDQlt1N0vJPWNXLN5RzK/plniAAAAAADQRrXZouuFF15IkhxxxBF7HN++fXuWLFmSZNeiq127NvtHAvvNz15q4rrf7NscAAAAAAC0bR1aOkBz2bRpU5Jky5YtexyfM2dO1q5dmx49euTII49s9jxDhw5tcol29gXT072iZ+rW1GXQoEG7HUNr0/szi9Ohb+P/u/rRT3+eQe86pxkScaDzPQoAAAAArVf//v3z8MMPN2ltmy26+vfvn3Xr1uWRRx7J+PHjdxmrq6vLZZddliQZPXp0SqVSs+epq6tr8tr6HTt2vtbW1u52DK1Nz43r06Fv49dt2bDOzzTNwvcoAAAAALRNbbboOu2007Jy5cpcd911edvb3pZhw4YlSZYtW5b3v//9Wbt2bZKksrJyv+Q59NBDm7yjq1379jtfBw4cuNsxtDovrkiGVDZ6Wfs1T/uZpln4HgUAAACA1qt///5NXttmi64ZM2bkv/7rv7J69eoce+yxOeaYY7J169Y899xzOeOMMzJ48OA8+OCDuzyfqzk9++yz6d69e5PWXv21b2fDxk05tP+hqamp2e0YWpun1yfv+3Hj1rQvJT/+0j+n3+x/bp5QHNB8jwIAAABA29S0LUYFMGjQoCxevDhnnnlmunTpkurq6hx88MGZPXt27r///jzzzDNJst+KLjiQHHNQ8sZDGrfm1AFJv67NkwcAAAAAgLapze7oSpLhw4fnvvvu2+39jRs3prq6Ou3atcvIkSNbIBm0fZ8fm1y4OKnb8vfnHtUj+cTo5s8EAAAAAEDb0qaLrr1ZsWJFyuVyhg0blm7duu02fueddyZJnnrqqV2OBw8enHHjxu2/oFBgfbokN5+UXP5w8sS6vc87sW/yuTcmFR33XzYAAAAAANqGA7LoeuKJJ5Ls/baF55577h6Pzz///Nx6663Nmg3akr5dk1tO+lPR9d3qZP6rHoX0j0ck5wxOhh3UUukAAAAAACg6RdcelMvl/RkH2rRSKRl98J9+PViT1OdPDwf8hMfjAQAAAADwGrVr6QAt4e8VXQAAAAAAALR+B+SOrgULFrR0BAAAAAAAAF6jA3JHFwAAAAAAAMWn6AIAAAAAAKCQFF0AAAAAAAAUkqILAAAAAACAQlJ0AQAAAAAAUEiKLgAAAAAAAApJ0QUAAAAAAEAhKboAAAAAAAAoJEUXAAAAAAAAhaToAgAAAAAAoJAUXQAAAAAAABSSogsAAAAAAIBCUnQBAAAAAABQSIouAAAAAAAACknRBbRKgwcPztFHH53KysqMGDEiX/va1/Y699xzz81DDz3UoPPeeeedueSSS3Z575vf/GZKpVLmzp27870JEyZk1apVTcoOAAAAAMD+oegCWq05c+akqqoq8+fPzyc+8Yk8/vjju81ZunRpfv/732f8+PENOufdd9+dKVOm7Dyurq7Of/7nf+aEE07YZd7HP/7xXHXVVa8pPwAAAAAAzUvRBbR6RxxxRI4++ug888wzu43Nnj07733ve5MkL7/8cgYNGpRDDjkklZWVGT58eDp37pwPfvCDSZJt27ZlyZIlOeWUU5Ik9fX1+eAHP5ivfvWr6dy58y7nPfPMMzN//vysX7++mT8dAAAAAABNpegCWr0nnngiTz/9dMaMGbPb2KJFi/KmN70pSdKrV6+8973vzfTp01NVVZUvfelLOeGEE3LTTTclSRYuXJgTTzwxHTt2TJJ88YtfzJvf/OaMHTt2t/N27Ngxo0aNyuLFi5vxkwEAAAAA8Fp0aOkAAHvz7ne/O127dk23bt1yyy23ZOjQobvNqampSb9+/XYeV1VVZdq0aUmS5cuX5w1veMPOsblz5+bss89Okjz55JO566678pOf/GSv1+/fv39qamr21ccBAAAAAGAfU3QBrdacOXNSWVn5N+d069YtW7du3XlcVVW1s9xavnx53vGOdyRJyuVyHnzwwVx//fVJksWLF6e6unpnebZmzZpcfPHFqauryyWXXJIk2bp1a7p27bqvPxYAAAAAAPuIWxcChTZ69Oj88pe/TJLU1tamVCpl4MCBSZLHH388o0aNSpIsXbo0w4cPT0VFRZLkkksuSV1dXaqrq1NdXZ0TTjgh3/jGN3aWXEmycuXKPd4uEQAAAACA1kHRBRTaOeeckwcffDBJ8uijj+5yq8JevXrl61//epLk7rvvzpQpUxp83urq6uzYsUPRBQAAAADQirl1IdAqVVdXN2jeBRdckBNPPDGf+cxnMnny5EyePHnn2LJly3b+/t57783ChQv3ep5Fixbtcvwf//EfmTFjRkqlUqNyAwAAAACw/9jRBRRaRUVFZs2alVWrVv3NeStWrEjfvn0bfN4BAwbkwgsvfK3xAAAAAABoRnZ0AYV36qmn7vNzTps2bZ+fEwAAAACAfcuOLgAAAAAAAApJ0QUAAAAAAEAhKboAAAAAAAAoJEUXAAAAAAAAhaToAgAAAAAAoJAUXQAAAAAAABSSogsAAAAAAIBCUnQBAAAAAABQSIouAAAAAAAACknRBQAAAAAAQCEpugAAAAAAACgkRRcAAAAAAACFpOgCAAAAAACgkBRdAAAAAAAAFJKiCwAAAAAAgEJSdAEAAAAAAFBIii4AAAAAAAAKSdEFAAAAAABAISm6AAAAAAAAKCRFFwAAAAAAAIWk6AIAAAAAAKCQDoiia+3atZkxY0aOOuqodOnSJYcddlg+9rGPZdOmTbnoootSKpVyww03tHRMaNNefiUp//n35SSbtrdkGgAAAAAA2oIOLR2guVVVVeWMM87ImjVr0r1794wYMSIvvvhivvKVr+RXv/pVfv/73ydJKisrWzYotFFPv5z896rk+7W7Fl1nPJj8w2HJe45MBvdowYAAAAAAABRWm97RtXbt2px11llZs2ZNPv7xj6euri6PPPJI1qxZk+uuuy73339/li1bllKplNGjR7d0XGhz5r6QfGBxct/q5JX6Xcc270jurE6m/jhZVNci8QAAAAAAKLg2XXRNmzYtNTU1ufTSSzNz5sz06PG/20ZmzJiRMWPGZPv27Rk8eHB69uzZgkmh7flBbfK5x5L68t+e98f65IqHk4fX7p9cAAAAAAC0HW226Fq5cmXmzJmT3r1755prrtnjnLFjxyZJxowZs/O9O++8M+9617tyxBFHpFu3bjnmmGNy5ZVXZuPGjfslN7QFr+xIrnui4fO3l5NrH0/Kf6cUAwAAAACAV2uzRdcdd9yR+vr6TJ06NRUVFXuc07Vr1yS7Fl0zZ85M+/btc/XVV2f+/Pm55JJLcuONN2bSpEmpr6/f43mAXf2oLnn5lcatqd6YLP9d8+QBAAAAAKBt6tDSAZrLggULkiQnn3zyXufU1NQk2bXouvfee9OnT5+dxxMnTkyfPn0yderU/PSnP81b3vKWZkoMbcd9q5u27t5fJ+N679ssAAAAAAC0XW226HrhhReSJEccccQex7dv354lS5Yk2bXoenXJ9Rfjxo1LktTW1jY5z9ChQ9OuXdM20J19wfR0r+iZujV1GTRo0G7H0Nr0/vTCdOg/tNHrvvejJbn5He9uhkQc6HyPAgAAAEDr1b9//zz88MNNWttmi65NmzYlSbZs2bLH8Tlz5mTt2rXp0aNHjjzyyL95roULFyZJhg8f3uQ8dXV1TV5bv2PHztfa2trdjqG1OWjb9iZ9ufxx61Y/0zQL36MAAAAA0Da12aKrf//+WbduXR555JGMHz9+l7G6urpcdtllSZLRo0enVCrt9Ty1tbX51Kc+lUmTJqWysrLJeQ499NAm7+hq1779zteBAwfudgytTbs/vJSk8cVwx82/8zNNs/A9CgAAAACtV//+/Zu8ts0WXaeddlpWrlyZ6667Lm9729sybNiwJMmyZcvy/ve/P2vXrk2Sv1lebdy4Me985zvTqVOn3HLLLa8pz7PPPpvu3bs3ae3VX/t2NmzclEP7H5qamprdjqG1eaAm+eQjjV9328fPy9hrztv3gTjg+R4FAAAAgLapaVuMCmDGjBk55JBDsnr16hx77LEZNWpUhg4dmuOPPz5DhgzJKaeckmTX53O92pYtW3LWWWdl1apV+f73v59DDz10f8aHQjvl0OTgTo1bM6RH8sZDmicPAAAAAABtU5stugYNGpTFixfnzDPPTJcuXVJdXZ2DDz44s2fPzv33359nnnkmyZ6Lrm3btuWcc87Jww8/nPnz52fEiBH7Oz4UWqf2yRWjk73fFHRXHdv9eX5DFwAAAAAAQNrwrQuTZPjw4bnvvvt2e3/jxo2prq5Ou3btMnLkyF3G6uvrM3Xq1PzoRz/KvHnzcvzxx++vuNCmnDIgueoNyWerkh3lvc/r0j65dpzdXAAAAAAANF6bLrr2ZsWKFSmXyxk2bFi6deu2y9hHP/rRfPe7380VV1yRbt265ec///nOsde//vXp06fP/o4LhTX5sOTonsl3qpP5NcnWHf87VtEhOevw5LzByWEVLZUQAAAAAIAiOyCLrieeeCLJnm9bOH/+/CTJtddem2uvvXaXsW9+85v5p3/6p2bPB23J0IOSK8ck00Ykv1yfbNmedO+YDD8o6XpAfgMBAAAAALCvHJB/zfy3iq7q6ur9nAYODD06JuN6t3QKAAAAAADaknYtHaAl/K2iCwAAAAAAgGI4IHd0LViwoKUjAAAAAAAA8BodkDu6AAAAAAAAKD5FFwAAAAAAAIWk6AIAAAAAAKCQFF0AAAAAAAAUkqILAAAAAACAQlJ0AQAAAAAAUEiKLgAAAAAAAApJ0QUAAAAAAEAhKboAAAAAAAAoJEUXAAAAAAAAhaToAgAAAAAAoJAUXQAAAAAAABSSogsAAAAAAIBCUnQBAAAAAABQSIouAAAAAAAACknRBQAAAAAAQCEpugAAAAAAACgkRRcAAAAAAACFpOgCAAAAAACgkBRdAAAAAAAAFJKiCwAAAAAAgEJSdAEAAAAAAFBIii4AAAAAAAAKSdEFAAAAAABAISm6AAAAAAAAKCRFFwAAAAAAAIWk6AIAAAAAAKCQFF0AAAAAAAAUkqILAAAAAACAQlJ0AQAAAAAAUEiKLgAAAAAAAApJ0QUAAAAAAEAhKboAAAAAAAAoJEUXAAAAAAAAhaToagVuv/32jB07Nq973evStWvXDB8+PF/84hdTLpdbOhoAe/CFL3wh48ePz+te97r06tUrJ510Uh544IGWjgUAAAAAB5wOLR2ApG/fvvnUpz6Vo48+Op07d87ixYvzkY98JO3bt8/HPvaxlo4HwF9ZsGBBLrzwwhx33HHp1q1bbrrppkyePDk//vGP8+Y3v7ml4wEAAADAAUPR1Qq8/e1v3+V4yJAhmTt3bhYtWqToAmiF5s+fv8vx9ddfnwceeCDf+973FF0AAAAAsB+5dWErUy6Xs3Tp0ixZsiQnn3xyS8cBoAHq6+uzYcOGdO/evaWjAAAAAMABxY6uVmL9+vUZOHBgXnnlldTX1+eqq67KtGnTWjoWQOGsWl2Xbdt37PLe9h07dr4+s6pmt+NXq+jWJQP69W7UNa+++uq8/PLLufjii19DcgAAAACgsRRdrUSPHj1SVVWVzZs352c/+1n+5V/+JQMGDMhFF13U0tEACqX2pbW570cP7XFs85atueU78/Z6XEryf//P5EZd7+tf/3quvvrq3HPPPRk0aFCTMgMAAAAATaPoaiXatWuXo446KkkyevTorFu3LldeeaWiC6CRThw7Mk8/9+s890Jto9dOOH50hhw+oMHzZ86cmauuuir33HNPTjvttEZfDwAAAAB4bTyjq5Wqr6/P1q1bWzoGQOG0K5Vyzj9MTJfOnRq1rn+fg3P6hOMaPP/Tn/50/vVf/zXz5s1TcgEAAABAC7GjqxW46qqrMmHChAwZMiTbtm3LT37yk1x33XW54IILWjoaQCH16lmRKaeflP++d0GD5rdv1y7nTT45HTq0b9D86dOnZ/bs2bnjjjty9NFHZ82aNUmSrl275qCDDmpybgAAAACgcRRdrcCGDRvy4Q9/OLW1tenSpUuGDBmSa665Jh/+8IdbOhpAYY0Z/vo89Wx1Hn/6+b879/S3jMuAvoc0+Nxf/vKXkyRnn332Lu+ff/75ufXWWxuVEwAAAABoOkVXKzBr1qzMmjWrpWMAtCmlUilTTj8pq2rW5A8bN+913uBB/TPhuNGNOne5XH6t8QAAAACAfcAzugpmdd1vUo6/YAVoiG5du+TcMybudbxTp44578y3pl07/zsEAAAAgCKyo6uVK5fL+dUvn8xPFzyYuprqfPayP6ZT5645ctiITDhlUkvHA2j1hg05LOPfOCIPPfLUbmNnnTo+B/fq2QKpAAAAAIB9wT9h/ys7duzI7bffntNPPz19+vRJ586dc/jhh2fSpEm56aabsmPHjv2W5fnnn09lZWVu+eq1eWbFo/nD+nXZumVzNrz8uzy2dHFuuPbKTJ48OevXr99vmQCK6Iy3npDeBx+0y3sjhh6RcaOObqFEAAAAAMC+UCp70MhOGzZsyJQpU7Jw4cIkyYABAzJw4MC8+OKLefHFF1Mul7Nu3br06tWrQefbtGlTKioqkiQbN25M9+7dG5zl+eefz4knnpiXXnrp784dO3ZsFi1atPNaAOxu9Yu/yY3f+p/Ul8up6NY10y88JxXdu7Z0LAAAAADgNbCj61UuuuiiLFy4MIMGDcqCBQtSW1ubpUuXpqamJnV1dfn85z+fjh07NnuOcrmcc845p0ElV5IsX74806ZNa+ZUAMV22IC+OfnENyRJ/nHSBCUXAAAAALQBdnT92fLlyzNu3Lh06NAhjz76aEaOHPmaz/nqHV1X/ftN6dS5S4PWrXru6dz0pc816lrt23fI5Z/7Srr38KwZgL0pl8vZtm17OnVq/n+0AAAAAAA0TI+Krvl/5/9jk9Z22MdZCmvu3LlJkjPPPHOflFx/bcOmzem0rWHP9/rpggcaff4dO7ZnyY9/kBPeOqnRawEONFtfeaWlIwAAAAAA+4Ci68+eeuqpJMn48eOb5fw9u3dr8I6u37z46yZd43cv1aZnRcOfAwYAAAAAANDSelQ0/TEjiq4/27BhQ5LkoIMOapbzX/ah96R794aVUDd8/rImXeOw/ofkEx+d2qS1AAAAAAAARaPo+rOePf/0bKv169fvs3N269YtGzduzI3f/p986Zt3p1QqNWjd9vqGzftrtb95OVd/7dtNWgsAAAAAANASPKNrHzj22GPzve99Lw899NA+O2epVEr37t3zyrZy/rBpc4PXDR46Ir996cVGX+/wo47Jho2bGr0OAAAAAACgiBRdf3b22Wfns5/9bObNm5ennnoqI0aM2Gfnbuy9JU86ZVKW/fSHjVrTraJHxp0wIR07dmrUOgAAAAAAgJb0Wp7RVSqXy+V9mKXQ3v3ud+c73/lODj/88Nx2222ZOHHizrGXXnopt9xyS6ZNm9bgZ229FqdPOjM/eHBeg+dff/31ueyypj3bCwAAAAAAoIgUXa+yYcOGvPOd78yiRYuSJAMHDsyAAQNSV1eX2tralMvlrFu3Lr169WrWHNt37MjVN9yWm758bVaveubvzv/Qhz6UG2+8scHPAAMAAAAAAGgL2rV0gNakZ8+e+eEPf5ibb745b33rW7N58+Y89thjadeuXd7+9rfn5ptvTo8ePZo9x/Innsnmrdty4bTLc+mll+51B1m/fv0yc+ZMJRcAAAAAAHBAsqOrFXp0xbOZv2hpJr5pTN48bmQ2bNiQ22+/Pb/4xS+yadOmHHTQQZk0aVKmTJmSTp08kwsAAAAAADgwKbpaqW3bt6eUUjp0aN/SUQAAAAAAAFolRRcAAAAAAACF5BldAAAAAAAAFJKiCwAAAAAAgEJSdAEAAAAAAFBIiq4WUCqVMmrUqMybN2+/XXPWrFk56qijUllZud+uCQAAAAAA0JxK5XK53NIhDjSlUinr1q1Lr1699sv1tm/fng4dOmTRokWZPn16qqqq9st1AQAAAAAAmpMdXa3Atm3bcsUVV+T4449PZWVlzjvvvKxbty6//e1vM3jw4Pz85z9Pktx5550ZM2ZMtmzZkkWLFmXkyJH5wAc+kJEjR2bs2LE7C6xFixbl2GOPzUUXXZTKysrcfffdLfjpAAAAAAAAmoeiqxX4whe+kO7du2fp0qWpqqrKqFGj8slPfjJ9+vTJ7bffnqlTp2bp0qWZPn16vvvd76Zr165JkhUrVuT888/Pk08+mcsvvzzvec978pcNeitXrswHPvCBVFVV5dxzz23JjwcAAAAAANAsOrR0AJK5c+dm/fr1ueuuu5Ikr7zySgYPHpwkmTBhQi666KKceOKJue222zJs2LCd6wYPHpxTTz01SXLeeefl4osvzurVq5MkQ4YMycSJE/fvBwEAAAAAANiPFF2tQLlczle/+tWcfvrpexx/9NFH06dPn50l1t6USqWUSqUkSUVFxT7PCQAAAAAA0Jq4dWErMGXKlMyaNSubN29OkmzevDkrVqxIktxwww1Zt25dHnvsscyePTtLlizZua66ujoLFy5M8qfnd/Xr1y+DBg3a/x8AAAAAAACgBdjR1Qpcfvnl+eMf/5g3velNO3dk/eW9mTNn5he/+EX69u2bb33rW3nf+96XZcuWJUmOPfbY3HrrrZk2bVo6deqUO+64Y+d6AAAAAACAtq5ULpfLLR3iQFMqlbJu3br06tWryedYtGhRpk+fnqqqqmZdAwAAAAAA0Fq5dWEL6NevXyZOnJh58+btt2vOmjUrH/nIR9K7d+/9dk0AAAAAAIDmZEcXAAAAAAAAhWRHFwAAAAAAAIWk6AIAAAAAAKCQFF0AAAAAAAAUkqILAAAAAACAQlJ0AQAAAAAAUEiKLgAAAAAAAApJ0QUAAAAAAEAhKboAAAAAAAAoJEUXAAAAAAAAhaToAgAAAAAAoJAUXQAAAAAAABSSogsAAAAAAIBCUnQBAAAAAABQSIouAAAAAAAACknRBQAAAAAAQCEpugAAAAAAACgkRRcAAAAAAACFpOgCAAAAAACgkBRdAAAAAAAAFJKiCwAAAAAAgEJSdAEAAAAAAFBIii4AAAAAAAAKSdEFAAAAAABAISm6AAAAAAAAKCRFFwAAAAAAAIX0/wGdSNXZ7Zt9sQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 2210.55x785.944 with 1 Axes>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# step 3\n",
    "\n",
    "qc.reset(0)\n",
    "qc.h(0)\n",
    "\n",
    "# phase correction\n",
    "first = expr.lift(c[0])\n",
    "second = expr.lift(c[1])\n",
    "\n",
    "with qc.if_test(first):\n",
    "    qc.p(-pi/4, 0)\n",
    "\n",
    "with qc.if_test(second):\n",
    "    qc.p(-pi/2, 0)\n",
    "\n",
    "# c-U operations\n",
    "for _ in range(2 ** (m - 3)):\n",
    "    qc.mcp(PHI, [0, 1], 2)\n",
    "\n",
    "# X measurement  \n",
    "qc.h(0)\n",
    "qc.measure(0, 2)\n",
    "\n",
    "qc.draw('mpl')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Step 2: Optimize for target hardware"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "service = QiskitRuntimeService(channel=\"ibm_quantum\")\n",
    "backend = service.least_busy(operational=True, simulator=False, dynamic_circuits=True, use_fractional_gates=False)\n",
    "print(backend.name)\n",
    "target = backend.target\n",
    "pm = generate_preset_pass_manager(target=target, optimization_level=3)\n",
    "\n",
    "isa_circuit = pm.run(qc)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Step 3: Execute on target hardware"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "sampler = Sampler(mode=backend)\n",
    "\n",
    "job = sampler.run([isa_circuit])\n",
    "\n",
    "id = job.job_id()\n",
    "print(id)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Step 4: Post-process results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkkAAAGtCAYAAAACveA9AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAABH5klEQVR4nO3df3zN9f//8fs5+2XYhjEsNvP7t/mdH2+/MyylpB9UKuXDm4TylnchRbxJqd7FW4lKP9WbFPmRmZXf0vIjyY8x0bDGhjHbzvP7h6/z7rTXNLPt7MftermcS53n63nOeTx2Zrvv9Xqe18tmjDECAACAC7u7CwAAACiMCEkAAAAWCEkAAAAWCEkAAAAWCEkAAAAWCEkAAAAWCEkAAAAWCEkAAAAWPN1dQFHmcDh04sQJ+fn5yWazubscAACQA8YYnTt3TsHBwbLbs99fREi6ASdOnFD16tXdXQYAAMiFY8eOqVq1atluJyTdAD8/P0lXvsj+/v5urgYAAORESkqKqlev7vw9nh1C0g24eojN39+fkAQAQBHzV0tlWLgNAABggZAEt5s+fbpat24tPz8/BQUFqV+/ftq/f7/LnP/7v/9TrVq15Ovrq0qVKun222/Xzz//7Ny+aNEi2Ww2y9upU6eyvObGjRvl6emp8PDw/G4PAFBEEZLgdhs2bNCIESO0ZcsWrV27Vunp6erZs6cuXLjgnNOyZUstXLhQ+/bt0+rVq2WMUc+ePZWZmSlJuueee/Tbb7+53CIiItS5c2cFBQW5vN7Zs2f14IMPqnv37gXaJwCgaLEZY4y7iyiqUlJSFBAQoOTkZNYk5aHTp08rKChIGzZsUKdOnSzn7Nq1S82aNdPBgwdVq1Yty+e46aabtGDBAj3wwAMu2+69917VqVNHHh4eWrZsmWJjY/OjDQBAIZXT39/sSUKhk5ycLEmqUKGC5fYLFy5o4cKFCgsLy/YUDO+9955Kly6tu+66y2V84cKFOnz4sCZPnpy3RQMAih1CEgoVh8Oh0aNHq0OHDmrcuLHLtjfffFNly5ZV2bJl9fXXX2vt2rXy9va2fJ4FCxZo4MCB8vX1dY4dOHBATz/9tBYvXixPTz7YCQC4NkISCpURI0Zoz549+vjjj7NsGzRokH744Qdt2LBBdevW1d13361Lly5lmbd582bt27dPQ4YMcY5lZmZq4MCBmjJliurWrZuvPQAAigfWJN0A1iTlrZEjR+qLL75QTEyMwsLCrjn38uXLKl++vN5++23dd999LtuGDBminTt36ocffnCOnT17VuXLl5eHh4dzzOFwyBgjDw8PrVmzRt26dcvbhgAAhVJOf39zzAFuZ4zR448/rqVLlyo6OvovA9LVxxhjlJaW5jJ+/vx5ffrpp5o+fbrLuL+/v3bv3u0y9uabbyoqKkqfffZZjl4TAFCyEJLgdiNGjNCHH36oL774Qn5+fkpISJAkBQQEyNfXV4cPH9Ynn3yinj17qlKlSvr11181Y8YM+fr6qk+fPi7P9cknnygjI0P333+/y7jdbs+yxikoKEilSpXKMg4AgMSaJBQCc+fOVXJysrp06aKqVas6b5988okkqVSpUvr222/Vp08f1a5dW/fcc4/8/Py0adOmLOdAWrBgge68806VK1fODZ0AAIoT1iTdANYkAQBQ9HCeJAAAgBtASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBASAIAALBQ6ELS9OnT1bp1a/n5+SkoKEj9+vXT/v37LecaY9S7d2/ZbDYtW7bMZVt8fLwiIyNVunRpBQUFady4ccrIyHCZEx0drRYtWsjHx0e1a9fWokWL8qkrAABQ1BS6kLRhwwaNGDFCW7Zs0dq1a5Wenq6ePXvqwoULWebOmTNHNpsty3hmZqYiIyN1+fJlbdq0Se+++64WLVqkSZMmOefExcUpMjJSXbt2VWxsrEaPHq1HH31Uq1evztf+AABA0VDoL3B7+vRpBQUFacOGDerUqZNzPDY2Vrfeeqt27NihqlWraunSperXr58k6euvv9att96qEydOqHLlypKkefPmafz48Tp9+rS8vb01fvx4rVixQnv27HE+57333quzZ89q1apVOaqNC9wCAFD0FJsL3CYnJ0uSKlSo4BxLTU3VwIED9cYbb6hKlSpZHrN582Y1adLEGZAkKSIiQikpKdq7d69zTo8ePVweFxERoc2bN+dHGwAAoIjxdHcB1+JwODR69Gh16NBBjRs3do6PGTNG7du31+233275uISEBJeAJMl5PyEh4ZpzUlJSdPHiRfn6+mZ53rS0NKWlpTnvp6SkSJLS09OVnp4uSbLb7fLw8FBmZqYcDodz7tXxjIwM/XHnnYeHh+x2e7bjV5/3Kk/PK2/Zn9dXZTfu5eUlh8OhzMxM55jNZpOnp2e249nVTk/0RE/0RE/0VFx6yolCHZJGjBihPXv26LvvvnOOLV++XFFRUfrhhx8KvJ7p06drypQpWcbXrFmj0qVLS5JCQkLUvHlz7dq1S/Hx8c459erVU/369bVt2zadPn3aOR4eHq7Q0FDFxMTo3LlzzvF27dopKChIa9ascXkzu3btKl9fX61cudKlhj59+ujixYtav369c8zT01ORkZFKTEx02UPm5+enbt266dixY4qNjXWOV6pUSe3bt9eBAwdcFsvTEz3REz3REz0Vp542btyonCi0a5JGjhypL774QjExMQoLC3OOjx49Wq+99prs9v8dKczMzJTdbtff/vY3RUdHa9KkSVq+fLnLFzguLk41a9bUzp071bx5c3Xq1EktWrTQnDlznHMWLlyo0aNHOw/x/ZnVnqTq1asrMTHReUyTpE5P9ERP9ERP9FS4e0pKSlJgYOBfrkkqdCHJGKPHH39cS5cuVXR0tOrUqeOyPSEhQYmJiS5jTZo00auvvqq+ffsqLCzMuXD7t99+U1BQkCRp/vz5GjdunE6dOiUfHx+NHz9eK1eu1O7du53PM3DgQCUlJbFwGwCAYiynv78L3eG2ESNG6MMPP9QXX3whPz8/5xqigIAA+fr6qkqVKpaLtUNCQpx7nHr27KmGDRvqgQce0MyZM5WQkKBnn31WI0aMkI+PjyRp2LBh+ve//61//OMfeuSRRxQVFaVPP/1UK1asKLhm4VTjafd83Y/MiHTL6wIACr9C9+m2uXPnKjk5WV26dFHVqlWdt08++STHz+Hh4aGvvvpKHh4eateune6//349+OCDev75551zwsLCtGLFCq1du1bNmjXT7Nmz9fbbbysiIiI/2gIAAEVModuTlJujf1aPCQ0NzbJ47M+6dOnilgXgAACg8Ct0e5IAAAAKA0ISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACABUISAACAhUIXkmJiYtS3b18FBwfLZrNp2bJlLtvPnz+vkSNHqlq1avL19VXDhg01b948lzmXLl3SiBEjFBgYqLJly6p///46efKky5z4+HhFRkaqdOnSCgoK0rhx45SRkZHf7QEAgCKi0IWkCxcuqFmzZnrjjTcst48dO1arVq3S4sWLtW/fPo0ePVojR47U8uXLnXPGjBmjL7/8UkuWLNGGDRt04sQJ3Xnnnc7tmZmZioyM1OXLl7Vp0ya9++67WrRokSZNmpTv/QEAgKLBZowx7i4iOzabTUuXLlW/fv2cY40bN9Y999yjiRMnOsdatmyp3r17a+rUqUpOTlalSpX04Ycf6q677pIk/fzzz2rQoIE2b96sm2++WV9//bVuvfVWnThxQpUrV5YkzZs3T+PHj9fp06fl7e2do/pSUlIUEBCg5ORk+fv7513jJVCNp1e45XWPzIh0y+sCANwnp7+/C92epL/Svn17LV++XMePH5cxRuvXr9cvv/yinj17SpK+//57paenq0ePHs7H1K9fXyEhIdq8ebMkafPmzWrSpIkzIElSRESEUlJStHfv3oJtCAAAFEqe7i7ger3++usaOnSoqlWrJk9PT9ntdr311lvq1KmTJCkhIUHe3t4qV66cy+MqV66shIQE55w/BqSr269uy05aWprS0tKc91NSUiRJ6enpSk9PlyTZ7XZ5eHgoMzNTDofDOffqeEZGhv64887Dw0N2uz3b8avPe5Wn55W37M/rp7Ib9/LyksPhUGZmpnPMZrPJ09Mz2/Hsas/vntyB94me6Ime6Klk9pQTRTIkbdmyRcuXL1doaKhiYmI0YsQIBQcHu+w9yg/Tp0/XlClT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VGpqqm655RZ17dpVVatWVUJCgtavX681a9YoIiJCW7ZsUcOGDfOyZgAAgHyX6zVJzz//vC5fvqyVK1dq9erVevrppzV48GCNHz9eq1at0sqVK3Xp0iU9//zz1/W8MTEx6tu3r4KDg2Wz2bRs2TLntvT0dI0fP15NmjRRmTJlFBwcrAcffFAnTpxweY6kpCQNGjRI/v7+KleunIYMGaLz58+7zNm1a5f+9re/qVSpUqpevbpmzpyZ2y8FAAAohnIdkqKjo3XXXXepV69eltt79eqlu+66S+vXr7+u571w4YKaNWumN954I8u21NRU7dy5UxMnTtTOnTv13//+V/v379dtt93mMm/QoEHau3ev1q5dq6+++koxMTEaOnSoc3tKSop69uyp0NBQff/995o1a5aee+45zZ8//7pqBQAAxVeuD7clJycrLCzsmnPCwsKUnJx8Xc/bu3dv9e7d23JbQECA1q5d6zL273//W23atFF8fLxCQkK0b98+rVq1Stu3b1erVq0kSa+//rr69Omjl156ScHBwfrggw90+fJlvfPOO/L29lajRo0UGxurl19+2SVMAQCAkivXe5KCg4O1ZcuWa87ZunWrgoODc/sSOZKcnCybzaZy5cpJkjZv3qxy5co5A5Ik9ejRQ3a7XVu3bnXO6dSpk7y9vZ1zIiIitH//fp05cyZf6wUAAEVDrvck3XbbbXr99dc1ceJEPfPMMypVqpRz26VLlzR9+nStX79eo0aNypNCrVy6dEnjx4/XfffdJ39/f0lSQkJClrN8e3p6qkKFCkpISHDO+fNesMqVKzu3lS9f3vL10tLSlJaW5ryfkpIi6cpaqfT0dElXzjju4eGhzMxMORwO59yr4xkZGTLGOMc9PDxkt9uzHb/6vH/sRVKWCwdnN+7l5SWHw6HMzEznmM1mk6enZ7bj2dWe3z25A+8TPdETPdFTyewpJ3L922nixIn66quv9OKLL+o///mP2rRpo8qVK+vkyZPavn27Tp8+rZo1a2rixIm5fYlrSk9P19133y1jjObOnZsvr/Fn06dP15QpU7KMr1mzRqVLl5YkhYSEqHnz5tq1a5fi4+Odc+rVq6f69etr27ZtOn36tHM8PDxcoaGhiomJ0blz55zj7dq1U1BQkNasWePyZnbt2lW+vr5auXKlSw19+vTRxYsXXdaAeXp6KjIyUomJ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GIfbAABAjhw7dkxPPPGE1q5d63I91OvhcDiUnp6u1157TT179pQkffTRR6pSpYrWr1+viIiIvCz5hrAnCQAA5Mj333+vU6dOqUWLFvL09JSnp6c2bNig1157TZ6enqpcubIuX76ss2fPujzu5MmTqlKliiSpatWqkqSGDRs6t1eqVEkVK1ZUfHx8gfWSE4QkAACQI927d9fu3bsVGxvrvLVq1UqDBg1y/r+Xl5fWrVvnfMz+/fsVHx+vdu3aSZI6dOjgHL8qKSlJiYmJCg0NLdiG/gKH2wAAQI74+fmpcePGLmNlypRRYGCgc3zIkCEaO3asKlSoIH9/fz3++ONq166dbr75ZklS3bp1dfvtt+uJJ57Q/Pnz5e/vrwkTJqh+/frq2rVrgfd0LYQkAACQZ1555RXZ7Xb1799faWlpioiI0Jtvvuky57333tOYMWMUGRkpu92uzp07a9WqVfLy8nJT1dZsxhjj7iKKqpSUFAUEBCg5OVn+/v55+twl7WSSJa1fAID75PT3N2uSAAAALBCSABSouXPnqmnTpvL395e/v7/atWunr7/+WtKVxZuPP/646tWrJ19fX4WEhGjUqFFKTk62fK7ff/9d1apVk81my/JpGgC4UaxJAlCgqlWrphkzZqhOnToyxujdd9/V7bffrh9++EHGGJ04cUIvvfSSGjZsqKNHj2rYsGE6ceKEPvvssyzPNWTIEDVt2lTHjx93QycAijtCEoAC1bdvX5f706ZN09y5c7VlyxYNGTJEn3/+uXNbrVq1NG3aNN1///3KyMiQp+f/fmTNnTtXZ8+e1aRJk5x7ogAgLxGSALhNZmamlixZogsXLjjPofJnVxdW/jEg/fTTT3r++ee1detWHT58uKDKBVDCEJIAFLjdu3erXbt2unTpksqWLaulS5e6nH33qsTERL3wwgsaOnSocywtLU333XefZs2apZCQEEISUABK6ieQWbgNoMDVq1dPsbGx2rp1q4YPH67Bgwfrp59+cpmTkpKiyMhINWzYUM8995xzfMKECWrQoIHuv//+Aq4aQElDSAJQ4Ly9vVW7dm21bNlS06dPV7NmzfTqq686t587d069evWSn5+fli5d6nKCuaioKC1ZssR53aju3btLkipWrKjJkycXeC8Aii8OtwFwO4fDobS0NElX9iBFRETIx8dHy5cvz3Kl8c8//1wXL1503t++fbseeeQRffvtt6pVq1aB1g2geCMkAShQEyZMUO/evRUSEqJz587pww8/VHR0tFavXq2UlBT17NlTqampWrx4sVJSUpSSkiLpylXCPTw8sgShxMRESVKDBg1Urly5gm4HQDFGSAJQoE6dOqUHH3xQv/32mwICAtS0aVOtXr1at9xyi6Kjo7V161ZJUu3atV0eFxcXpxo1arihYgAlFSEJQIFasGBBttu6dOmi672cZG4eAwA5wcJtAAAAC4QkAAAAC4QkAAAAC4QkAAAAC4QkAAAAC3y6DUC+K6nXfQJQtLEnCQAAwAIhCQAAwAIhCQAAwAIhCQAAwAIhCQAAwAIhCQAAwAIhCQCQp2JiYtS3b18FBwfLZrNp2bJlLtttNpvlbdasWVmeKy0tTeHh4bLZbIqNjS2YBoD/j5AEAMhTFy5cULNmzfTGG29Ybv/tt99cbu+8845sNpv69++fZe4//vEPBQcH53fJgCVCElAI/NVf3pK0b98+3XbbbQoICFCZMmXUunVrxcfHS5KSkpL0+OOPq169evL19VVISIhGjRql5OTkAu4EkHr37q2pU6fqjjvusNxepUoVl9sXX3yhrl27qmbNmi7zvv76a61Zs0YvvfRSQZQNZEFIAgqBv/rL+9ChQ+rYsaPq16+v6Oho7dq1SxMnTlSpUqUkSSdOnNCJEyf00ksvac+ePVq0aJFWrVqlIUOGFGQbwHU7efKkVqxYkeV79eTJk3rsscf0/vvvq3Tp0m6qDiUdlyUBCoHevXurd+/e2W5/5pln1KdPH82cOdM5VqtWLef/N27cWJ9//rnLtmnTpun+++9XRkaGPD35p47C6d1335Wfn5/uvPNO55gxRg899JCGDRumVq1a6ciRI+4rECUae5KAQs7hcGjFihWqW7euIiIiFBQUpLZt21oekvuj5ORk+fv7E5BQqL3zzjsaNGiQc6+oJL3++us6d+6cJkyY4MbKAEISUOidOnVK58+f14wZM9SrVy+tWbNGd9xxh+68805t2LDB8jGJiYl64YUXNHTo0AKuFsi5b7/9Vvv379ejjz7qMh4VFaXNmzfLx8dHnp6eql27tiSpVatWGjx4sDtKRQnFn5hAIedwOCRJt99+u8aMGSNJCg8P16ZNmzRv3jx17tzZZX5KSooiIyPVsGFDPffccwVdLpBjCxYsUMuWLdWsWTOX8ddee01Tp0513j9x4oQiIiL0ySefqG3btgVdJkowQhJQyFWsWFGenp5q2LChy3iDBg303XffuYydO3dOvXr1kp+fn5YuXSovL6+CLBWQJJ0/f14HDx503o+Li1NsbKwqVKigkJAQSVfC/JIlSzR79uwsj78656qyZctKurLWrlq1avlYOeCKkAQUct7e3mrdurX279/vMv7LL78oNDTUeT8lJUURERHy8fHR8uXLXdZ4AAVpx44d6tq1q/P+2LFjJUmDBw/WokWLJEkff/yxjDG677773FEikCOEJKAQ+Ku/vMeNG6d77rlHnTp1UteuXbVq1Sp9+eWXio6OlnQlIPXs2VOpqalavHixUlJSlJKSIkmqVKmSPDw83NEWSqguXbrIGHPNOUOHDs3xmrkaNWr85fMB+YGQBBQCf/WX9x133KF58+Zp+vTpGjVqlOrVq6fPP/9cHTt2lCTt3LlTW7dulSTnIter4uLiVKNGjYJpBACKEUISUAjk5C/vRx55RI888kiuHw8AuD6cAgAAAMACe5IAADesxtMr3PK6R2ZEuuV1r6VGjRo6evRolvG///3veuONN3To0CE99dRT+u6775SWlqZevXrp9ddfV+XKld1QLa6FPUkAAOSh7du367fffnPe1q5dK0kaMGCALly4oJ49e8pmsykqKkobN27U5cuX1bdvX+c50VB4sCcJcAP+6sbx48c1fvx4ff3110pNTVXt2rW1cOFCtWrVyjln3759Gj9+vDZs2KCMjAw1bNhQn3/+eZbzCKFwqVSpksv9GTNmqFatWurcubPWrl2rI0eO6IcffpC/v7+kK9evK1++vKKiotSjRw93lIxssCcJAArYmTNn1KFDB3l5eenrr7/WTz/9pNmzZ6t8+fLOOYcOHVLHjh1Vv359RUdHa9euXZo4cSLnvypiLl++rMWLF+uRRx6RzWZTWlqabDabfHx8nHNKlSolu92e5eSwcD/2JAFAAfvXv/6l6tWra+HChc6xsLAwlznPPPOM+vTpo5kzZzrHatWqVWA1Im8sW7ZMZ8+e1UMPPSRJuvnmm1WmTBmNHz9eL774oowxevrpp5WZmanffvvNvcUiC/YkAUABW758uVq1aqUBAwYoKChIzZs311tvveXc7nA4tGLFCtWtW1cREREKCgpS27ZttWzZMvcVjVxZsGCBevfureDgYElXDsUtWbJEX375pcqWLauAgACdPXtWLVq0kN3Or+TChncEAArY4cOHNXfuXNWpU0erV6/W8OHDNWrUKL377ruSpFOnTun8+fOaMWOGevXqpTVr1uiOO+7QnXfeqQ0bNri5euTU0aNH9c033+jRRx91Ge/Zs6cOHTqkU6dOKTExUe+//76OHz+umjVruqlSZIfDbQBQwBwOh1q1aqUXX3xRktS8eXPt2bNH8+bN0+DBg52fcrr99ts1ZswYSVJ4eLg2bdqkefPmqXPnzm6rHTm3cOFCBQUFKTLS+gMTFStWlCRFRUXp1KlTuu222wqyPOQAe5IAoIBVrVpVDRs2dBlr0KCB4uPjJV355enp6XnNOSjcHA6HFi5cqMGDB8vT03V/xMKFC7VlyxYdOnRIixcv1oABAzRmzBjVq1fPTdUiO+xJAoAC1qFDB+3fv99l7JdfflFoaKgkydvbW61bt77mHBRu33zzjeLj4y0vJbR//35NmDBBSUlJqlGjhp555hnnHkMULoQkAChgY8aMUfv27fXiiy/q7rvv1rZt2zR//nzNnz/fOWfcuHG655571KlTJ3Xt2lWrVq3Sl19+qejoaPcVjhzr2bNnttdTnDFjhmbMmFHAFSE3ONwGAAWsdevWWrp0qT766CM1btxYL7zwgubMmaNBgwY559xxxx2aN2+eZs6cqSZNmujtt9/W559/ro4dO7qxcqBkYU8SALjBrbfeqltvvfWacx555BHLwzUACgYhCQCA68SlhUoGDrcBAABYYE8SAOQD9jQARR97kgAAACwQkgAAACwQkgAAACwQkgAAACyU+JD0xhtvqEaNGipVqpTatm2rbdu2ubskAABQCJTokPTJJ59o7Nixmjx5snbu3KlmzZopIiJCp06dcndpAADAzUp0SHr55Zf12GOP6eGHH1bDhg01b948lS5dWu+88467SwMAAG5WYs+TdPnyZX3//feaMGGCc8xut6tHjx7avHmz5WPS0tKUlpbmvJ+cnCxJSkpKUnp6uvM5PDw8lJmZKYfD4fLcHh4eysjIcLnooYeHh+x2e5ZxR1pq3jR6nVJSUrKt/UZ7ujp+9Wt1laenp9v6PXPmTL71JEkZGRmW4+7q9/fff3f+f1739OdxLy8vORyOK983bu43P3q6ymazXfke/tO4u3q++nMpP3q6Om71s8Cd/eZXT9f6uefu72kp73u61s89d/eb1z0lJSVJUrYXIXYyJdTx48eNJLNp0yaX8XHjxpk2bdpYPmby5MlGEjdu3Lhx48atGNyOHTt2zaxQYvck5caECRM0duxY532Hw6GkpCQFBgbKZrO5sbL/SUlJUfXq1XXs2DH5+/u7u5x8R7/FW0nrVyp5PdNv8VZY+zXG6Ny5cwoODr7mvBIbkipWrCgPDw+dPHnSZfzkyZOqUqWK5WN8fHzk4+PjMlauXLn8KvGG+Pv7F6pvyPxGv8VbSetXKnk902/xVhj7DQgI+Ms5JXbhtre3t1q2bKl169Y5xxwOh9atW6d27dq5sTIAAFAYlNg9SZI0duxYDR48WK1atVKbNm00Z84cXbhwQQ8//LC7SwMAAG5WokPSPffco9OnT2vSpElKSEhQeHi4Vq1apcqVK7u7tFzz8fHR5MmTsxwWLK7ot3graf1KJa9n+i3einq/NmP+6vNvAAAAJU+JXZMEAABwLYQkAAAAC4QkAAAAC4QkAAAAC4QkAAAAC4SkYowPLhZ/vMcAkH8IScVYYbmeHPIP73Hx9ccrmqN4+uN7zB88hRPnSSpm0tPT9dNPP2nFihXy9/dX8+bNVaNGDVWuXFmenp5yOByy24tfNs7MzJTNZiuWvf1ZamqqtmzZoiVLlqhChQpq0KCBateurbp166pChQruLi/flKT3GCXH5cuX5e3t7e4ykA1CUjHz1FNP6aOPPlJQUJDOnDmj+Ph4hYWFaeDAgRo1apQqVark7hLz1K5du9S0aVOXsczMTNnt9mK7l+XRRx/V2rVrVaNGDf3++++Kj49XlSpV1KlTJ/39739XixYt3F1intq6davatm3rMpaRkSG73V4sA9OJEyf00UcfaevWrapTp44aNWqkBg0aqE6dOipbtqyMMcX2e7ukBOGDBw/q9ddf1w8//KA6deqoVq1aaty4sdq0aZPtBdaLA4fDIZvNVrS+fw2Kjb179xo/Pz+zYsUKc+LECZOZmWmOHDliJk2aZG666SYTEBBg3n//fXeXmWcOHDhgPD09TYcOHcykSZPM7t27s8y5fPmy2bp1q0lLS3NDhXlv7969pmzZsua7774zqampxhhjkpKSzGuvvWYaNWpk7Ha7mTlzpsnMzDQOh8PN1d64n3/+2dhsNnPTTTeZIUOGmC1btrhsdzgcJi0tzSxfvtwkJCS4qcq8ExcXZ1q3bm1q1apl7rrrLlOvXj1Tvnx506RJEzN+/Hhz+vRpd5eY5xITE82mTZtcxhwOh8nIyCgW38N/dujQIdOgQQPTpk0bM2rUKNO9e3fTpEkT06JFC/PQQw+Zbdu2ubvEPHXy5EmzfPlyk5GR4TKemZnpcv/y5csFWVaOEZKKkalTp5pOnTo57//xm/L8+fPmiSeeME2aNDGnTp1yR3l57rnnnjMhISFm2LBhpn379qZevXomIiLC/Pvf/zbHjx83xhhz7NgxY7PZzLFjx9xcbd6YPXu26dixo/P+n8PfrFmzTFhYmDl8+HBBl5YvXnjhBdOoUSMzadIk07FjRxMQEGDq1q1rJk6caOLi4owxxvz222/GZrOZ+Ph49xabB/7v//7PREZGuny/xsXFmcmTJ5tKlSqZqlWrmtWrV7uxwrw3atQoY7PZTN26dc24cePMzz//7LI9MzPTHD161Hz66adZftEWRcOGDTN9+/Y1Z86ccY4dP37cvPnmm6Z58+bG39/fLF682H0F5rERI0YYm81mKlasaAYPHmw2btzost3hcJi4uDgza9Ysc+nSJTdVmT0OtxUj//3vf/XMM89o9erVCgkJkXTlsITD4ZC3t7cOHDigu+66S8OHD9ewYcPcXO2NGzhwoCpXrqxx48bp+PHj2rp1q7Zu3aq9e/cqLS1NzZs314ULF/TLL79o79697i43T6xbt06PPvqo3n//fXXs2FHSlfc4PT1dvr6+OnnypPr166fbbrtNEyZMcHO1N+7vf/+7PD09NXHiRKWlpenHH39UVFSU1qxZo6NHj6pp06YqXbq0jh8/Xize4w4dOqh///4aO3as0tPTZbPZ5Ol55TrkDodDd955p2w2m5YuXVpsDru1bNlS4eHhCgoK0urVq3Xw4EHVqVNH999/vx566CGVL19ezz//vBYtWqTDhw+7u9wb1qtXL7Vv316TJk1SZmamJMnDw8O5ffjw4dq7d6/Wrl0rb2/vIv8e33zzzerQoYNq1KihTz75RFu2bNFNN92kgQMH6rHHHlPNmjU1ZcoUvf/++zp48KC7y83KzSENeSgxMdHUr1/fNGzY0Hz22WeWqbxp06bmP//5jxuqy1vp6elm8eLFZvr06S7jCQkJZu3atebFF180/fr1Mzabzbz11ltuqjLvpaammh49epjg4GAzf/585yG3P2rWrJl544033FBd3srIyDArVqzI0sv58+fNvn37zEcffWQGDx5sbDabWbBggZuqzFuTJk0yrVq1cvm3e/nyZef7vG7dOlO7du1ic0jmyJEjJiIiwrz33nsmLS3N/PLLL2bJkiXmscceM7Vq1TL+/v4mIiLCBAYGmpdfftnd5eaJl19+2YSFhZlDhw45x9LS0pzveWxsrAkLCzMbNmxwV4l55tdffzV33XWX82dwSkqK2bFjh3n22WdN/fr1jc1mMy1atDB+fn7mlVdecW+x2SAkFTPHjx8399xzj2natKnp06ePmTx5somOjjZxcXFm7NixJjAw0Jw/f97dZeY5q+PZH330kbHZbObChQtuqCj/pKammjFjxpiwsDDTqFEj88gjj5hly5aZ6Oho88ADD5jg4OBi+R7/eQ2DMcZ8+eWXxeo93r59u6lSpYpp1aqV+fLLL7Ns379/v/Hx8Sk2/SYnJ5tFixaZ6Ohol/GzZ8+a2NhYs2DBAvO3v/3NeHh4WP5BUBQdOnTIhIeHm5o1a5pFixZl2b5nzx7j5eVVLN7jCxcumOXLl2dZS5iZmWkSExPNunXrzK233lqo318OtxVDp06d0sqVK/XNN9/o6NGj2r9/vxITE9WlSxc9+uijGjhwoLtLvGHZncrgj596GjdunLZv367o6OiCLzCfXO373Llz+u677/Tdd99p+/bt2rFjhzIyMtSjRw8NGTJEkZGR7i71hpkrf8Rd85NOU6ZM0aZNm7R69eoCrCx/HTx4UOPHj9eOHTsUGBioDh06qE+fPtq/f78++ugjVa9eXZ999pm7y8xzxhhlZmY6Dy9edc899+jUqVNav369myrLe+fOndPTTz+tjz/+WBkZGbrlllvUq1cv7dmzR9HR0WrSpInef/99d5eZ54zFIeIHHnhAR48eVUxMjJuqujZCUjFx8uRJxcXFycfHR76+vqpZs6bsdrsOHTqk1NRUlSlTRhUrViw259G52q+3t7eMMapRo4YCAwOd240x+uKLL3TTTTepdevWbqw071gFw8uXL+v06dPy9fXVpUuXFBAQoDJlyripwryVk3N6RUdHq1KlSmrUqFEBVVUwLly4oHXr1ikqKkrbt2/X7t27FRgYqCFDhuj+++9XjRo13F1ivjHGON/7ixcvqnPnznr66afVv39/d5eWJ672dunSJe3evVsxMTGKiorS999/r5o1a2rQoEG68847VbVqVXeXesP+6iP/Fy9e1O23367hw4frjjvuKODqcoaQVAy89dZbWrhwoXbu3ClPT0/Vq1dPDRo0UPfu3XXbbbe5hIfi4M/9NmzYUPXr11eHDh0UGRmpatWqubvEfHX1L24PD48iv6gzJ3KyR6k4WLlypc6cOaPMzExVr15dbdq0UZkyZZSamioPDw+dO3dOFStWdHeZeepqzxkZGapUqZLatm3r8vMqLS1N33zzTbHYM5qdP57XLTk5WQEBAe4uqcCkp6drx44dateunbtLyRYhqYj7/fffVadOHY0YMUKPPfaYUlJStHLlSq1bt04HDhxQ48aN9eqrryosLKxYfBrmWv0ePHhQTZo00SuvvKKwsDBlZGRk2XVfFJ05c0YtWrRQ//799fDDD7vsNfnjyff27dunatWqyc/Pz43V3rhr9fvHv0z37dunqlWrqly5cu4rNg+cO3dOw4YN09q1a5WRkaGqVauqTJkyCgwMVM+ePTVgwABn8C8uZ8z/c8/BwcEqW7asAgMD1aVLF919990KDQ11d5l5JiMjQ0lJSQoKCnJ3KQWiWPVbwGugkMdeffVV07ZtW8ttUVFRpnXr1qZhw4Yu5+Qoykpav8Zc6dlms5mmTZsam81mGjRoYGbOnOly8sRjx46Z8PBwl0/MFFUlrd+pU6eaJk2amJiYGGOMMbt37zbz5s0zgwYNMk2bNjUDBgwwZ8+edXOVeetaPTdr1szcfffdxarnV155xZQrV86MHDnSxMTEWC7KTk5ONitXriy0J1W8Hjnt96uvvir0J/olJBVxb775pmnUqJHZt2+fMcaYixcvunzT7du3z9StW9d8+umn7ioxT5W0fo0xZsiQIWbo0KHm6NGjZuPGjebxxx831atXN3a73XTu3Nl89NFHZs6cOaZ06dLuLjVPlLR+O3ToYObMmZNlPDMz06xevdqEhISYfv36uaGy/FPSem7Tpo1p3769ad26tbHb7aZ+/fpm8uTJZvfu3c4TZL755pvZ/gFY1BSnfov+ftsSbsCAAbLb7Xr99dd16dIllSpVSt7e3s6rS9evX1+BgYE6evSomyvNGyWt37S0NDVq1Eg1atRQSEiI2rdvr1deeUVbt27V559/ripVqujxxx/XmDFjNH78eHeXe8NKWr/p6elq1KiRli5dqt9//13SlUMVV9ep9OzZU2+88YYOHjyoPXv2uLnavFHSej59+rS8vb01fPhwbdu2TXv27NEdd9yhRYsWKTw8XJ07d9a8efP05ptvZrlGYVFU7Pp1d0pD7l29Ptfnn39uqlWrZvz9/c1jjz1mdu7caYwx5sSJE+bDDz80ZcuWdV7CoSgraf1edenSJedlVqyud7Ry5Upjs9nMr7/+6o7y8lxJ63fz5s2mdu3a5tlnnzWJiYlZth87dsyUKVOm2PRrTMnq+cSJE+bll1/OcjmZjIwMExMTYx566CETEBBQbC6fVNz6ZeF2MZCWlqZDhw5pw4YN+uKLL/Tdd9/JZrPppptuUnp6ugYNGqTnn3/e3WXmmZLWryT99ttv8vb2tvyk4gsvvKCFCxcWi0s2XFVS+jXGKCMjQwsXLtQ///lPZWZm6u6779Z9992n0NBQxcbGavny5dq9e7d27Njh7nLzREns+eLFi5IkX19fyw/QPPXUU4qKitLOnTvdUV6eK079EpKKqMTERH3yySeaNWuWAgMDVaFCBZUvX15t2rRR8+bNlZqaqsOHD6t3796qU6dOkf9UW0nrV/pfzy+99JIqVaokf39/BQcH67bbblNkZKR8fX3lcDj09ttvKzg4WLfeequ7S74hJa3fPzt79qwWLVqkDz/8ULGxsQoICFCpUqXUokULTZgwQTfffLO7S8xzJbHnP7t06ZLCw8P18MMPF4tDyH+lqPVLSCqiHnnkEf3444/q3bu3ypYtq99//10HDx7U8ePHFRoaqilTpqhhw4buLjPPlLR+Jdee/fz89Pvvv2vfvn06duyY6tSpo7Fjxxbq84tcr5LW78WLF+Xr6+syZozRxYsXdf78ee3evVtly5YtGus2cqik9WzVr9WcTz/9VPfdd5+8vb0LqLL8URz7JSQVQcYYlS1bVitXrlTnzp2dYwcPHtS3336rt99+W0lJSfrss8/UuHFjN1d740pav1L2PR86dEjffvut3nrrLSUnJ+vTTz8tFmebLmn9StKTTz6pDh06qGXLlqpSpYp8fHyyzDlz5ozKly9fLM5xJpW8nnPS79mzZ4v8ub6uKpb9FtzyJ+SVPXv2mMaNG5vt27dbbk9NTTVNmzY1kydPLtjC8klJ69eYktdzSev3gw8+MDabzXh5eZmwsDAzZswYExUVZRISEpznyUlOTja333672bVrl5urzRslrefs+j158qRJT083xhhz/vx507dvX7N79243V3vjimu/hKQiKDU11XTr1s106tTJHD582DgcjixzZs+ebVq2bOmG6vJeSevXmJLXc0nrd8iQIWb48OHm0KFDZurUqaZGjRrGZrOZFi1amOnTp5udO3ead955x3h6erq71DxT0nqm3+LRLyGpiNq0aZMJDw83HTp0MIsXLzYnTpwwqampxpgrH6EeMGCAGThwoJurzDslrV9jSl7PJaXf9PR0M23aNDNhwgSX8R9//NEMHTrUBAQEmLJlyxovLy/z8MMPu6nKvFXSeqbfK4pDv4SkImzXrl1mwIABplSpUqZixYqmX79+ZtiwYSYsLMy0bt3a/Pjjj+4uMU+VtH6NKXk9l5R+z5w5Y37++WdjjDFpaWlZ9pwtXrzY2Gw2Exsb647y8kVJ65l+i0e/LNwuBk6dOqWvvvpKy5Ytk6+vrxo3bqy77rpLDRo0cHdp+aKk9SuVvJ5LWr/SlYvXGmPk4eGht956S0888YRSU1PdXVa+Kmk902/R65eQVMwUl6uE51RJ61cqeT2XtH4l6eWXX1ZmZqbGjRvn7lIKTEnrmX6LBkISABQy6enp8vDwKFHhsKT1TL9FAyEJAADAQtGKdAAAAAWEkAQAAGCBkAQAAGCBkAQAAGCBkAQAAGCBkAQAAGCBkAQAAGCBkAQAAGCBkAQAAGDh/wElsmUjpZEeHwAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from qiskit_ibm_runtime import QiskitRuntimeService\n",
    "\n",
    "service = QiskitRuntimeService()\n",
    "job = service.job(id)\n",
    "job_result = job.result()\n",
    "counts = job_result[0].data.c.get_counts()\n",
    "plot_histogram(counts)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "phi = 0.125\n"
     ]
    }
   ],
   "source": [
    "# get the most frequent result\n",
    "max_key, max_value = max(counts.items(), key=lambda x: x[1])\n",
    "\n",
    "phi = int(max_key, 2) / 8\n",
    "\n",
    "print(f'phi = {phi}') # 0.125 (= 1/8 = 0.001 in bynary) as expected"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "qiskit==1.1.0\n",
      "qiskit-aer==0.14.2\n",
      "qiskit-algorithms==0.3.0\n",
      "qiskit-ibm-runtime==0.25.0\n",
      "qiskit-machine-learning==0.7.2\n",
      "qiskit-nature==0.7.2\n",
      "qiskit-nature-pyscf==0.4.0\n",
      "qiskit-qasm3-import==0.5.0\n",
      "qiskit-transpiler-service==0.4.5\n"
     ]
    }
   ],
   "source": [
    "! pip freeze | grep qiskit"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "qss",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
